form->validate(); if ($this->mode === 'create') { $create->execute(new CreateRoleDTO( name: $this->form->name, guard_name: $this->form->guard_name, permissions: $this->form->selected_permissions )); } elseif ($this->mode === 'update') { $update->execute(Role::findById($this->id), new UpdateRoleDTO( permissions: $this->form->selected_permissions, )); } $this->success($this->message); $this->dispatch('hide-role-form-modal'); $this->js("LaravelDataTables['role-table'].ajax.reload(null, false)"); $this->form->reset(); $this->form->resetValidation(); $this->reset('id', 'mode'); } public function show(int|string $id): void { $this->id = $id; $this->mode = 'update'; $role = Role::with(['permissions' => fn ($q) => $q->select('name')])->findOrFail($id); $this->form->fill($role->only(['name', 'guard_name'])); $this->form->selected_permissions = $role->permissions->pluck('name')->toArray(); } public function hide(): void { $this->form->reset(); $this->form->resetValidation(); $this->reset('id', 'mode'); } };