matchCompany($email); if (!$company) return false; $expense = ExpenseFactory::create($company->id, $company->owner()->id); $expense->public_notes = $subject; $expense->private_notes = $plain_message; $expense->date = $date; // add html_message as document to the expense $documents[] = TempFile::UploadedFileFromRaw($html_message, "E-Mail.html", "text/html"); $this->saveDocuments($documents, $expense); $expense->saveQuietly(); return $expense; } private function matchCompany(string $email) { return Company::where("expense_mailbox", $email)->first(); } }