request = $request; $this->template_alias = $template_alias; } public function handle(): void { $transaction = Transaction::find($this->request->get('transaction_id')); event(new TransactionSending($transaction)); $mail_request = $this->request->only(['to', 'subject', 'body']); if ($this->request->get('user_email', false)) { $mail_request['cc'] = user()->email; } $attachments = collect($this->request->get('attachments', [])) ->filter(fn($value) => $value == true) ->keys() ->all(); $attach_pdf = in_array('pdf', $attachments); $contacts = $transaction->contact->withPersons(); $counter = 1; foreach ($contacts as $contact) { if (! in_array($contact->email, $mail_request['to'])) { continue; } $custom_mail = [ 'subject' => $mail_request['subject'], 'body' => $mail_request['body'], ]; if (($counter == 1) && ! empty($mail_request['cc'])) { $custom_mail['cc'] = $mail_request['cc']; } $contact->notify(new Notification($transaction, $this->template_alias, $attach_pdf, $custom_mail, $attachments)); $counter++; } event(new TransactionSent($transaction)); } }