canCreateMilestone = $canCreateMilestone; $this->createsMilestone = $createsMilestone; } /** * @param Request $request * @return Model * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \App\Classes\Exceptions\RequestValidationException */ public function execute(Request $request): Model { $userMilestoneObject = new MilestoneObject( $request->input('id'), $request->input('name'), $request->input('description') ); $this->canCreateMilestone->passes($userMilestoneObject); return $this->createsMilestone->execute($userMilestoneObject); } }