payment->load('company', 'invoices'); if (!$this->contact) { if($invoice = $this->payment->invoices->first() ?? false) { $invitation = $invoice ->invitations() ->whereHas("contact", function ($q) { $q->where('send_email', true)->orderBy("is_primary", 'ASC'); }) ->first(); if($invitation) { $this->contact = $invitation->contact; } else { $this->contact = $this->payment->client->contacts()->orderBy('send_email', 'desc')->orderBy('is_primary', 'desc')->first(); } } } EmailPayment::dispatch($this->payment, $this->payment->company, $this->contact); } }