тут напрашивается метод валидации, чтоб не дублировать логику установления значений из реквеста, метод на проверку существования юзера, и метод апсерт превращается в три строчки кода, валидация (возможно превращение в дто), проверка на существование, и на результате проверки инсерт или апдейт
присмотритесь к коду, посмотрите какие строки у вас дублируются, их выносите в общие
такие как
$this->repository->saveAndCommit($user);
//
$user->setName($request->getName());
$user->setActive($request->getActive());
// из этого можно собирать один раз дто из реквеста