/**
  * update
  *
  * @param UserInterface $user user
  * @param array         $data data
  *
  * @return UserInterface
  */
 public function update(UserInterface $user, array $data = [])
 {
     if ($user->isDirty('password') || !empty($data['password']) && $user->password !== $data['password']) {
         $model = $this->createModel();
         $data['passwordUpdatedAt'] = $model->freshTimestamp();
     }
     $user->update($data);
     return $user;
 }