LaravelのDIはメソッドインジェクションなので、ビジネスロジックを積んだ_invoke
なUsecaseクラス(とちょい弄ったFormRequest)を作っておけば、
public function search(SearchRequest $request, SearchUsecase $usecase)
{
return $usecase($request->all());
}
という記述でValidationからロジックまでを一瞬にして終了し、Controllerをガリガリにできる。つよい(本番運用するにはもうちょい面倒をしなきゃいけないけど、、、)