find($this->campaignId); if (! $campaign || ! in_array($campaign->status, [Campaign::STATUS_QUEUED, Campaign::STATUS_SENDING], true)) { return; } if ($campaign->recipient_count === 0) { $campaign->forceFill([ 'status' => Campaign::STATUS_FAILED, 'completed_at' => now(), ])->save(); return; } $campaign->forceFill(['status' => Campaign::STATUS_SENDING])->save(); $campaign->recipients() ->where('status', CampaignRecipient::STATUS_PENDING) ->orderBy('id') ->pluck('id') ->each(fn (int $recipientId) => SendCampaignMessageJob::dispatch($recipientId)); } }