canRegisterUser = $canRegisterUser; $this->createsUser = $createsUser; } /** * @param Request $request * @param $roleType * @param $status * @return Model * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \App\Classes\Exceptions\RequestValidationException */ public function execute(Request $request, $roleType, $status): Model { $userObject = new RegistrationObject($request->input('name'), $request->input('email'), $request->input('password'), $request->input('password_confirmation'), $roleType, $status); $this->canRegisterUser->passes($userObject); /** @var User $user_query */ return $this->createsUser->execute($userObject); } }