page = $pageRepo; $this->gate = $authController; } public function handleRequest(Request $request) { $path = explode('/', $request->path()); switch ($path[0]) { case 'login': return $this->gate->enter($request); break; case 'page': $body = json_decode($request->getContent()); $result = $this->page->create($body); return response()->json($result)->header('Content-Type', 'application/json'); break; case 'settings': if ($path[1] == 'mailer') { return $this->sendNotify($request); } break; } } private function sendNotify($request) { $result = []; try { Mail::to(env('ADMIN_EMAIL'))->send(new SystemEmail($request->content)); $result = [ 'type' => 'mail_good', 'message' => 'Mail Sent', ]; } catch (TransportException $e) { $result = [ 'type' => 'mail_not_good', 'message' => 'Mail Not Sent. It\'s cool. Just check mail settings in the .env', ]; } return response()->json($result)->header('Content-Type', 'application/json'); } }