public function recomputeUserProgress($subject)
    {
        $this->clearCache();
        $percentage = null;

        if ($subject instanceof User) {
            $percentage = $this->computeUserProgress($subject);
        } elseif ($subject instanceof Group) {
            foreach ($subject->getUsers() as $user) {
                $this->computeUserProgress($user);
            }
        } else {
            throw new \InvalidArgumentException(
                'Subject must be an instance of User or Group'
            );
        }

        $this->om->flush();

        return $percentage;
    }