public function getNearestPostDuration($key) { if ($duration = $this->cache->get($key . '-duration')) { return $duration; } else { $nearest_scheduled_post = $this->posts->nearestScheduledPost(); if (!is_null($nearest_scheduled_post)) { $nearest_scheduled_posts_date = new Carbon($nearest_scheduled_post->publish_date, config('app.timezone')); $time_difference = $nearest_scheduled_posts_date->diffInMinutes(Carbon::now(config('app.timezone'))) + 1; if ($time_difference > 0) { $duration = $this->cache->remember($key . '-duration', function () use($time_difference) { return $time_difference; }, ['posts'], $time_difference); return $duration; } } } }