*/ public function handle(): array { // Find campaigns that are released but not completed $campaigns = $this->campaignRepository->findAll([ 'status' => CampaignStatus::RELEASED->value, ]); $totalProcessed = 0; $totalSuccessful = 0; $results = []; foreach ($campaigns as $campaign) { $result = $this->processor->retryFailedRegistrations($campaign->id, 3); $totalProcessed += $result['processed']; $totalSuccessful += $result['successful']; if ($result['processed'] > 0) { $results[] = [ 'campaign_id' => $campaign->id, 'title' => $campaign->title, ...$result, ]; } } return [ 'job' => 'retry_failed_registrations', 'timestamp' => time(), 'campaigns_checked' => count($campaigns), 'total_processed' => $totalProcessed, 'total_successful' => $totalSuccessful, 'total_failed' => $totalProcessed - $totalSuccessful, 'results' => $results, ]; } }