/**
  * @param StartVettingProcedureCommand $command
  * @return string The procedure ID.
  */
 public function startProcedure(StartVettingProcedureCommand $command)
 {
     $this->smsSecondFactorService->clearSmsVerificationState();
     if (!$this->isLoaSufficientToStartProcedure($command)) {
         throw new LoaTooLowException(sprintf("Registration authority has LoA '%s', which is not enough to allow vetting of a '%s' second factor", $command->authorityLoa, $command->secondFactor->type));
     }
     $procedure = VettingProcedure::start($command->secondFactor->id, $command->authorityId, $command->registrationCode, $command->secondFactor);
     $this->vettingProcedureRepository->store($procedure);
     return $procedure->getId();
 }
 public function clearSmsVerificationState()
 {
     $this->smsSecondFactorService->clearSmsVerificationState();
 }