'Delete User', 'message' => 'You have successfully deleted the User' ]; } /** @var CanDeleteUser */ private $canDeleteUser; /** @var DeletesUser */ private $deletesUser; /** @var FetchesUser */ private $fetchesUser; public function __construct( CanDeleteUser $canDeleteUser, DeletesUser $deletesUser, FetchesUser $fetchesUser ) { $this->canDeleteUser = $canDeleteUser; $this->deletesUser = $deletesUser; $this->fetchesUser = $fetchesUser; } /** * @param Request $request * @return JsonResponse * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \App\Classes\Exceptions\RequestValidationException */ public function logic(Request $request) : JsonResponse { $user = $this->fetchesUser->execute(['id' => $request->route('id')]); $this->canDeleteUser->passes(); $this->deletesUser->execute($user); return $this->resourceResponse(new UserResource($user)); } }