/** * Returns a new form for adding roles to the specified permission. * * @param Permission $permission * * @return \Orchestra\Contracts\Html\Builder */ public function formRoles(Permission $permission) { return $this->form->of('permissions.roles', function (FormGrid $form) use($permission) { $method = 'POST'; $url = route('admin.permissions.roles.store', [$permission->id]); $form->attributes(compact('method', 'url')); $form->with($permission); $form->layout('components.form-modal'); $form->submit = 'Save'; $form->fieldset(function (Fieldset $fieldset) { $fieldset->control('input:select', 'roles[]')->label('Roles')->options(function (Permission $permission) { // We'll only allow users to select permissions that // aren't apart of the current role. return Role::whereDoesntHave('permissions', function (Builder $builder) use($permission) { $builder->whereName($permission->name); })->get()->pluck('label', 'id'); })->attributes(['class' => 'select-multiple', 'multiple' => true]); }); }); }