/**
  * @param  User $user
  * @throws GeneralException
  * @return boolean|null
  */
 public function delete(User $user)
 {
     //Failsafe
     if (is_null($user->deleted_at)) {
         throw new GeneralException("This user must be deleted first before it can be destroyed permanently.");
     }
     DB::transaction(function () use($user) {
         //Detach all roles & permissions
         $user->detachRoles($user->roles);
         if ($user->forceDelete()) {
             event(new UserPermanentlyDeleted($user));
             return true;
         }
         throw new GeneralException(trans('exceptions.backend.access.users.delete_error'));
     });
 }