withoutPayer()->onlyPending()->chunkById(200, function ($earnings) use (&$page) { $earnings->load(['earningable', 'user']); foreach ($earnings as $earning) { try { DB::beginTransaction(); $earning->update([ 'settle_at' => now(), ]); (new DealerEarningService())->pay($earning); DB::commit(); } catch (Throwable $e) { DB::rollBack(); report($e); } } $page++; }); if ($page === 0) { sleep(60); } else { sleep(30); } } } }