listRolesAction->run(); return Inertia::render('Dashboard/Roles/Index', $data); } public function create(): Response { $permissions = Permission::orderBy('name')->get(['id', 'name']); return Inertia::render('Dashboard/Roles/Create', [ 'permissions' => $permissions, ]); } public function store(StoreRoleRequest $request): RedirectResponse { try { $this->createRoleAction->run($request->validated()); return redirect()->route('dashboard.roles.index') ->with('success', 'Роль успешно создана!'); } catch (\Exception $e) { return back() ->withInput() ->with('error', 'Ошибка при создании роли: ' . $e->getMessage()); } } public function edit(Role $role): Response { $role->load('permissions'); $permissions = Permission::orderBy('name')->get(['id', 'name']); return Inertia::render('Dashboard/Roles/Edit', [ 'role' => [ 'id' => $role->id, 'name' => $role->name, 'permissions' => $role->permissions->pluck('name')->toArray(), ], 'permissions' => $permissions, ]); } public function update(UpdateRoleRequest $request, Role $role): RedirectResponse { try { $this->updateRoleAction->run($role, $request->validated()); return redirect()->route('dashboard.roles.index') ->with('success', 'Роль успешно обновлена!'); } catch (\Exception $e) { return back() ->withInput() ->with('error', 'Ошибка при обновлении роли: ' . $e->getMessage()); } } public function destroy(Role $role): RedirectResponse { try { $this->deleteRoleAction->run($role); return redirect()->route('dashboard.roles.index') ->with('success', 'Роль успешно удалена!'); } catch (\Exception $e) { return back() ->with('error', 'Ошибка при удалении роли: ' . $e->getMessage()); } } }