company = $company; $this->error = $error; $this->client = $client; $this->payment_hash = $payment_hash; $this->company = $company; $this->settings = $client->getMergedSettings(); } /** * Execute the job. * * @return void */ public function handle() { /*If we are migrating data we don't want to fire these notification*/ if ($this->company->is_disabled) { return true; } //Set DB MultiDB::setDb($this->company->db); //if we need to set an email driver do it now $this->setMailDriver(); $this->invoices = Invoice::whereIn('id', $this->transformKeys(array_column($this->payment_hash->invoices(), 'invoice_id')))->get(); $this->invoices->first()->invitations->each(function ($invitation) { if ($invitation->contact->send_email && $invitation->contact->email) { $mail_obj = (new ClientPaymentFailureObject($this->client, $this->error, $this->company, $this->payment_hash))->build(); $mail_obj->from = [config('mail.from.address'), config('mail.from.name')]; //send email try { Mail::to($invitation->contact->email) ->send(new EntityNotificationMailer($mail_obj)); } catch (\Exception $e) { $this->logMailError($e->getMessage(), $this->client); } } }); } }