override = $override; $this->setDefaults() ->updateMailable() ->email(); } public function sendNow($override = false) :void { $this->setDefaults() ->updateMailable() ->email(true); } private function email($force = false): void { if($force) (new EmailMailer($this, $this->mailable))->handle(); else EmailMailer::dispatch($this, $this->mailable)->delay(2); } private function setDefaults(): self { $defaults = new EmailDefaults($this, $this->email_object); $defaults->run(); return $this; } private function updateMailable() { $this->mailable = new EmailMailable($this->email_object); return $this; } private function emailQualityCheck() { } }