to = $to; $this->mailable = $mailable; } /** * Execute the job. * * @return void */ public function handle(): void { // Record sent email $sentEmail = SentEmail::create([ 'recipient' => $this->to, 'mailable_class' => get_class($this->mailable) ]); // Add unsubscribe link if mailable supports it if (method_exists($this->mailable, 'withUnsubscribeLink')) { $unsubscribeLink = route('unsubscribe', ['email' => $sentEmail->id]); $this->mailable->withUnsubscribeLink($unsubscribeLink); } Mail::to($this->to)->send($this->mailable); } }