public function updateProgressionAction(Step $step, User $user, Request $request)
    {
        $node = $step->getPath()->getResourceNode();

        if (!$this->authorization->isGranted('OPEN', new ResourceCollection([$node]))) {
            throw new AccessDeniedException('Operation "OPEN" cannot be done on object'.get_class($node));
        }
        $status = $this->decodeRequest($request)['status'];
        $this->userProgressionManager->update($step, $user, $status, true);
        $this->userProgressionManager->generateResourceEvaluation($step, $user, $status);
        $resourceUserEvaluation = $this->userProgressionManager->getResourceUserEvaluation($step->getPath(), $user);

        return new JsonResponse([
            'userEvaluation' => $this->serializer->serialize($resourceUserEvaluation),
            'userProgression' => [
                'stepId' => $step->getUuid(),
                'status' => $status,
            ],
        ]);
    }