/**
  * Handle the form.
  *
  * @param SettingRepositoryInterface $settings
  * @param RegisterFormBuilder        $builder
  * @param UserActivator              $activator
  * @throws \Exception
  */
 public function handle(SettingRepositoryInterface $settings, RegisterFormBuilder $builder, UserActivator $activator)
 {
     if (!$builder->canSave()) {
         return;
     }
     $builder->saveForm();
     // Save the new user.
     /* @var UserInterface $user */
     $user = $builder->getFormEntry();
     $activator->start($user);
     $mode = $settings->value('anomaly.module.users::activation_mode', 'manual');
     if ($mode === 'automatic') {
         $this->dispatch(new HandleAutomaticRegistration($builder));
     } elseif ($mode === 'manual') {
         $this->dispatch(new HandleManualRegistration($builder));
     } elseif ($mode === 'email') {
         $this->dispatch(new HandleEmailRegistration($builder));
     }
 }