The TTL argument was minutes for years and became seconds in 5.8, which means every existing call now expires sixty times sooner and nothing warns about it.
// 5.7 — 60 minutes
Cache::put('report', $data, 60);
// 5.8 — 60 SECONDS. same code, same signature.
Cache::put('report', $data, 60);
// unambiguous, and what to write from now on
Cache::put('report', $data, now()->addHour());
Cache::put('report', $data, new DateInterval('PT1H'));
This is the upgrade’s one genuinely dangerous change because it is invisible: the cache still works, the application still returns correct data, and the hit rate collapses. The symptom is database load rising after a deploy that touched nothing related. Passing a DateTimeInterface or a DateInterval removes the ambiguity permanently, and grepping for numeric third arguments is the migration.