json($data); } /** * Store a newly created resource in storage. */ public function store(StoreRequest $request): JsonResponse { DB::transaction(function () use ($request) { $role = Role::create([ 'name' => $request->name, 'name_fa' => $request->name_fa, 'guard_name' => 'web' ]); $role->syncPermissions($request->permissions); }); return $this->successResponse(); } /** * Display the specified resource. */ public function show(Role $role): JsonResponse { return $this->successResponse(new RoleResource($role)); } /** * Update the specified resource in storage. */ public function update(UpdateRequest $request, Role $role): JsonResponse { DB::transaction(function () use ($request, $role) { $role->update([ 'name' => $request->name, 'name_fa' => $request->name_fa, 'guard_name' => 'web' ]); $role->syncPermissions($request->permissions); }); return $this->successResponse(); } /** * Remove the specified resource from storage. */ public function destroy(Role $role): JsonResponse { DB::transaction(function () use ($role) { $role->syncPermissions([]); $role->delete(); }); return $this->successResponse(); } public function list(): JsonResponse { return $this->successResponse(RoleResource::collection(Role::all())); } }