/** * @param Request $request * @param array $routeData * @return mixed * @throws \Exception */ public function dispatchRoute(Request $request, array $routeData) { if (!class_exists($routeData['controller'])) { throw new \Exception($routeData['controller'] . ' cannot be found'); } foreach ($this->middleware as $middleware) { $middleware->handle($request, $routeData); } return $this->container->call($routeData['controller'], $routeData['action'], $routeData['params']); }