invoice = $invoice; $this->contact = $contact; } public function run() { if (! $this->contact) { $this->contact = $this->invoice->client->primary_contact()->first(); } $invitation = $this->invoice->invitations->where('client_contact_id', $this->contact->id)->first(); $path = $this->invoice->client->invoice_filepath(); $file_path = $path.$this->invoice->number.'.pdf'; $disk = config('filesystems.default'); $file = Storage::disk($disk)->exists($file_path); if (! $file) { $file_path = CreateInvoicePdf::dispatchNow($invitation); } return Storage::disk($disk)->path($file_path); } }