/**
  * Get the validation rules that apply to the request.
  *
  * @return array
  */
 public function rules()
 {
     return ['username' => ['type' => 'username', 'error' => '{auth.register.error.username.invalid}', 'required' => '{auth.register.error.username.required}', 'filters' => ['string.trim' => true], 'success' => function ($username, ValidationError $validationError, ValidationManager $validationManager) {
         if (!$this->userRepository->isUniqueUsername($username)) {
             $validationError->setError('{auth.register.error.username.not_unique}');
         }
     }], 'email' => ['type' => 'email', 'error' => '{auth.register.error.email.invalid}', 'required' => '{auth.register.error.email.required}', 'filters' => ['string.trim' => true], 'success' => function ($email, ValidationError $validationError, ValidationManager $validationManager) {
         if (!$this->userRepository->isUniqueEmail($email)) {
             $validationError->setError('{auth.register.error.email.not_unique}');
         }
     }], 'password' => ['type' => 'password', 'error' => '{auth.register.error.password.invalid}', 'required' => '{auth.register.error.password.required}'], 'password_confirmation' => ['type' => 'string', 'error' => '{auth.register.error.password_confirmation.not_match}', 'success' => function ($passwordConfirmation, ValidationError $validationError, ValidationManager $validationManager) {
         $password = $validationManager->getData('password');
         if (empty($password) || !$validationManager->getValidationResult()->isValid('password')) {
             return;
         }
         if (empty($passwordConfirmation)) {
             $validationError->setError('{auth.register.error.password_confirmation.required}');
         } else {
             if ($validationManager->getData('password') !== $passwordConfirmation) {
                 $validationError->setError('{auth.register.error.password_confirmation.not_match}');
             }
         }
     }]];
 }