info("Dispatching jobs with a delay between each..."); DB::transaction(function () use ($count) { $delay = 0; RoadObserved::query() ->whereBetween('StartTime_DateTime_fa', ['1403-01-01 00:00:00', '1403-07-13 23:59:59']) ->where('rms_status', '=', 0) ->chunkById(50, function ($roads) use ($delay, $count) { foreach ($roads as $road) { $road->update(['rms_status' => 1]); SendRoadObservationToNikarayan::dispatch($road)->delay(now()->addMinutes(10)->addSeconds($delay)); Log::channel('road_observation_problem')->info("Job for Road Observed ID {$road->id} scheduled with a {$delay} seconds delay."); $this->info("Scheduled job for Road ID: {$road->id} {$delay}s"); $delay += 3; $count +=1; } }); }); $this->info("{$count} item's sent successfully"); } }