option('tenant') ? (int)$this->option('tenant') : null; $guard = $this->option('guard') ?: 'api'; $actions = config('authz.menu_actions', ['view','create','update','delete','approve']); $menus = Menu::query() ->when($tenant !== null, fn ($q) => $q->where('tenant_id', $tenant)) ->get(); $count = 0; foreach ($menus as $m) { app(PermissionRegistrar::class)->setPermissionsTeamId((int)$m->tenant_id); foreach ($actions as $act) { Permission::firstOrCreate([ 'tenant_id' => (int)$m->tenant_id, 'guard_name' => $guard, 'name' => "menu:{$m->id}.{$act}", ]); $count++; } } app(PermissionRegistrar::class)->forgetCachedPermissions(); $this->info("Ensured {$count} permissions."); return self::SUCCESS; } }