afterCommit(); } /** * Get the message envelope. */ public function envelope(): Envelope { $jobTitle = $this->interview->job_title ?: 'Candidate Assessment'; $round = $this->interview->round ?: 'R1'; return new Envelope( subject: "Panelist Assignment: {$this->interview->candidate_name} - {$jobTitle} ({$round})", ); } /** * Get the message content definition. */ public function content(): Content { return new Content( view: 'emails.interview.interviewer-notification', ); } /** * Get the attachments for the message. * * @return array */ public function attachments(): array { return [ Attachment::fromData(fn () => $this->icsContent, $this->icsFilename) ->withMime('text/calendar; charset=UTF-8; method=REQUEST'), ]; } }