$executor */ public function __construct( private FindEmployee $usecase, private UsecaseExecutor $executor, private EmployeeShowPresenter $presenter, ) { } public function __invoke(EmployeeShowRequest $request): JsonResponse { /** @var \Presentation\Api\V1\Presenters\Employees\EmployeeShowView $response */ $response = UsecaseBuilder::using($this->executor) ->do($this->usecase) ->from($this->toInput($request)) ->with($this->presenter) ->run(); return (new EmployeeShowResponse($response))->present(); } private function toInput(EmployeeShowRequest $request): Input { return new Input( id: $request->employeeId(), ); } }