performSearch($term); } catch (InvalidArgumentException $e) { // user entered empty string (or something like empty string) return redirect() ->route('search') ->with('error', $e->getMessage()); } } return view('admin.search.page', ['search' => $term, 'results' => $results]); } protected function performSearch($term) { $engines = App::make('registerSearchEngine') ->get(); $resultsParts = []; foreach ($engines as $engine) { list ($search, $presenter) = $engine; $results = $search->search($term); $resultsParts[$search->getId()] = [ 'name' => $search->getName(), 'content' => $presenter->render($results), 'count' => count($results) ]; } return $resultsParts; } }