public function destroy($id) { try { // Disable rules on model Role::$rules = []; // Get role $role = Role::findOrFail($id); if (in_array($role->id, [1, 2])) { return MainHelper::response(null, sprintf('You can\'t delete the %s role.', $role->name), 'error'); } // Save role name $roleName = $role->name; foreach ($role->users as $user) { $user->roles()->detach($id); $user->roles()->attach(2); } $role->delete(); return MainHelper::response(['url' => route('admin.site.roles.index')], sprintf('%s was deleted', $roleName)); } catch (ModelNotFoundException $e) { return Redirect::route('admin.site.roles.index')->withErrors([sprintf('Role #%u doesn\'t exist.', $id)]); } }