/** * @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')); }); }