info('Updating cooperation statuses...'); $today = Carbon::today(); Log::info('Running UpdateCooperationStatusJob at '.now()); // 1. PENDING -> ASSIGNMENT (final_submission_date) $updatedPending = Cooperation::pending() ->whereDate('final_submission_date', '<=', $today) ->update(['status' => CooperationStatus::ASSIGNMENT]); if ($updatedPending > 0) { Log::info("Updated {$updatedPending} cooperations from PENDING to ASSIGNMENT."); } // 2. ASSIGNMENT -> VERIFICATION (assignment_deadline) $updatedAssignment = Cooperation::assignment() ->whereDate('assignment_deadline', '<=', $today) ->update(['status' => CooperationStatus::VERIFICATION]); if ($updatedAssignment > 0) { Log::info("Updated {$updatedAssignment} cooperations from ASSIGNMENT to VERIFICATION."); } // 3. VERIFICATION -> PAYMENT (verification_deadline) $updatedVerification = Cooperation::verification() ->whereDate('verification_deadline', '<=', $today) ->update(['status' => CooperationStatus::PAYMENT]); if ($updatedVerification > 0) { Log::info("Updated {$updatedVerification} cooperations from VERIFICATION to PAYMENT."); } $this->info('Cooperation statuses updated successfully.'); return Command::SUCCESS; } }