request) || !array_key_exists('attachments', $this->request) || !array_key_exists('timestamp', $this->request) || !array_key_exists('Subject', $this->request) || !(array_key_exists('body-html', $this->request) || array_key_exists('body-plain', $this->request))) throw new \Exception('invalid body'); // match company $company = MultiDB::findAndSetDbByExpenseMailbox($this->request["To"]); if (!$company) { Log::info('unknown Expense Mailbox occured while handling an inbound email from mailgun: ' . $this->request["To"]); return; } // prepare $ingresMail = (new MailgunInboundWebhookTransformer())->transform($this->request); Log::info(json_encode($ingresMail)); // perform (new IngresEmailEngine($ingresMail))->handle(); } }