where('username', "<>", "witel"); $data = DataTableFacade::run( $query, $request, allowedFilters: $allowedFilters, allowedSortings: $allowedSortings, allowedRelations: $allowedRelations); return response()->json($data); } public function store(StoreRequest $request): JsonResponse { DB::transaction(function () use ($request) { $province = Province::query()->find($request->province_id); $avatar = $request->avatar ? FileFacade::save($request->file('avatar'), 'users/avatars/' . $request->username) : null; $user = User::query()->create([ 'full_name' => $request->full_name, 'username' => $request->username, 'position' => $request->position, 'gender' => $request->gender, 'national_id' => $request->national_id, 'phone_number' => $request->phone_number, 'province_id' => $province->id, 'province_fa' => $province->name, 'password' => Hash::make($request->password), 'avatar' => $avatar, 'email' => $request->email, 'telephone_id' => $request->telephone_id, ]); $user->syncRoles($request->roles); }); return $this->successResponse(); } public function show(User $user): JsonResponse { return $this->successResponse(new UserResource($user)); } public function update(UpdateRequest $request, User $user): JsonResponse { DB::transaction(function () use ($request, $user) { $province = Province::query()->find($request->province_id); $avatar = $request->avatar ? $user->storeFile($request->file('avatar'), $request->username) : null; $user->update([ 'full_name' => $request->full_name, 'username' => $request->username, 'position' => $request->position, 'gender' => $request->gender, 'national_id' => $request->national_id, 'phone_number' => $request->phone_number, 'province_id' => $province->id, 'province_fa' => $province->name, 'avatar' => $avatar, 'email' => $request->email, 'telephone_id' => $request->telephone_id ]); $user->syncRoles($request->roles); }); return $this->successResponse(); } public function destroy(User $user): JsonResponse { DB::transaction(function () use ($user) { if ($user->avatar) { FileFacade::delete($user->avatar, true); } $user->syncRoles([]); $user->delete(); }); return $this->successResponse(); } }