user = $user; $this->vacationRequest = $vacationRequest; } public function via(): array { return ["mail"]; } /** * @throws InvalidArgumentException */ public function toMail(): MailMessage { $url = route( "vacation.requests.show", [ "vacationRequest" => $this->vacationRequest, ], ); return $this->buildMailMessage($url); } protected function buildMailMessage(string $url): MailMessage { $title = $this->vacationRequest->name; $state = $this->vacationRequest->state->label(); $user = $this->user->getFullNameAttribute(); return (new MailMessage()) ->greeting(__("Hi :user!", [ "user" => $user, ])) ->subject(__("Vacation request :title", [ "title" => $title, ])) ->line(__("The vacation request :title has changed state to :state.", [ "title" => $title, "state" => $state, ])) ->action(__("Show vacation request"), $url); } }