$application->id, 'metadata' => $metadata, ]); $queued_deployments = ApplicationDeploymentQueue::where('application_id', $application->id)->where('status', 'queued')->get()->sortByDesc('created_at'); $running_deployments = ApplicationDeploymentQueue::where('application_id', $application->id)->where('status', 'in_progress')->get()->sortByDesc('created_at'); if ($queued_deployments->count() > 1) { $queued_deployments = $queued_deployments->skip(1); $queued_deployments->each(function ($queued_deployment, $key) { $queued_deployment->status = 'cancelled by system'; $queued_deployment->save(); }); } if ($running_deployments->count() > 0) { return; } dispatch(new ApplicationDeploymentJob( application_deployment_queue_id: $deployment->id, deployment_uuid: $metadata['deployment_uuid'], application_uuid: $metadata['application_uuid'], force_rebuild: $metadata['force_rebuild'], commit: $metadata['commit'] ?? null, )); }