app->singleton(JobRepository::class, CustomJobRepository::class); $this->app->singleton(CustomJobRepositoryInterface::class, CustomJobRepository::class); } /** * Bootstrap services. */ public function boot(): void { Event::listen(function (JobReserved $event) { $payload = $event->payload->decoded; $jobName = $payload['displayName']; if ($jobName === 'App\Jobs\ApplicationDeploymentJob') { $tags = $payload['tags']; $id = $payload['id']; $deploymentQueueId = collect($tags)->first(function ($tag) { return str_contains($tag, 'App\Models\ApplicationDeploymentQueue'); }); $deploymentQueueId = explode(':', $deploymentQueueId)[1]; $deploymentQueue = ApplicationDeploymentQueue::find($deploymentQueueId); $deploymentQueue->update([ 'horizon_job_id' => $id, ]); } }); } }