beforeMessage = JobStarted::on($this->jobId)->withMessage($message); return $this; } public function after(string $message): self { $this->afterMessage = JobFinished::on($this->jobId)->withMessage($message); return $this; } public function failed(string $message): self { $this->failedMessage = JobFailed::on($this->jobId)->withMessage($message); return $this; } public function shouldReload(JobChannels $channels): self { $this->reloadAfter = ReloadTriggered::on($channels); return $this; } public function handle(JobDecorator $job, Closure $next): void { try { $next($job); } catch (Throwable $e) { if ($this->failedMessage) { event($this->failedMessage); } throw $e; } if ($this->afterMessage) { event($this->afterMessage); } if ($this->reloadAfter) { event($this->reloadAfter); } } }