*/ $approachSlidesListToUnPublish = ApproachSlide::query() ->where('unpublish_at', '<=', Carbon::now()) ->whereNotNull('unpublish_at') ->where('published', true)->get(); Log::debug(__CLASS__ . " approachSlides to unpublish " . $approachSlidesListToUnPublish->count()); foreach ($approachSlidesListToUnPublish as $approachSlide) { $approachSlide->publish_at = null; $approachSlide->unpublish_at = null; $approachSlide->published = false; $approachSlide->saveOrFail(); } /** @var \Illuminate\Database\Eloquent\Collection */ $approachSlidesListToPublish = ApproachSlide::query() ->where('publish_at', '<=', Carbon::now()) ->whereNotNull('publish_at') ->where('published', false)->get(); Log::debug(__CLASS__ . " approachSlides to publish " . $approachSlidesListToPublish->count()); // Unpublish all approachSlide with no date because only 1 approachSlide can be published. if ($approachSlidesListToPublish->count()) { ApproachSlide::query()->where('published', true) ->each(function (ApproachSlide $approachSlide) { $approachSlide->published = false; $approachSlide->saveOrFail(); }); } foreach ($approachSlidesListToPublish as $approachSlide) { $approachSlide->publish_at = null; $approachSlide->published = true; $approachSlide->saveOrFail(); } } }