where('provider', 'ovh') ->where(function (Builder $query): void { $query->where('status', 'uncertain') ->orWhere(fn (Builder $query): Builder => $query->where('status', 'sending')->where('updated_at', '<', now()->subMinutes(10))); }) ->orderBy('updated_at') ->limit(max(1, (int) $this->option('limit'))) ->get() ->each(function (SmsCampaign $campaign) use ($reconciler, &$processed): void { if ($campaign->status === 'sending') { $campaign->update([ 'status' => 'uncertain', 'error_message' => 'Envoi interrompu avant confirmation. Verification OVH necessaire ; ne pas renvoyer cette campagne.', ]); $campaign->deliveries()->where('status', 'queued')->update(['status' => 'uncertain']); } $reconciler->reconcile($campaign); $processed++; }); $this->line($processed.' campagne(s) verifiee(s), sans nouvel envoi.'); return self::SUCCESS; } }