forgetCachedPermissions(); $permissions = [ // Dashboard tabs 'dashboard.view.pertek', 'dashboard.view.rintek', 'dashboard.view.amdal', 'dashboard.view.izin_angkut', 'dashboard.view.uji_emisi', // Menus 'penjadwalan.access', 'persetujuan_teknis.access', 'rincian_teknis.access', 'persetujuan_lingkungan.access', 'izin_angkut_olah.access', 'izin_tempat_uji_emisi.access', // Management 'settings.manage', 'content.manage', 'master_data.manage', ]; foreach ($permissions as $perm) { Permission::firstOrCreate(['name' => $perm]); } // Roles $kadis = Role::firstOrCreate(['name' => 'Kadis']); $ppkl = Role::firstOrCreate(['name' => 'PPKL']); $dlh = Role::firstOrCreate(['name' => 'DLH']); // Kadis permissions (semua dashboard tabs + modules, tanpa pengaturan/konten/master data) $kadisPerms = [ 'dashboard.view.pertek', 'dashboard.view.rintek', 'dashboard.view.amdal', 'dashboard.view.izin_angkut', 'dashboard.view.uji_emisi', 'penjadwalan.access', 'persetujuan_teknis.access', 'rincian_teknis.access', 'persetujuan_lingkungan.access', 'izin_angkut_olah.access', 'izin_tempat_uji_emisi.access', ]; $kadis->syncPermissions($kadisPerms); // PPKL permissions (dashboard pertek + penjadwalan + persetujuan teknis) $ppklPerms = [ 'dashboard.view.pertek', 'penjadwalan.access', 'persetujuan_teknis.access', ]; $ppkl->syncPermissions($ppklPerms); // DLH (super admin) -> assign all permissions $dlh->syncPermissions(Permission::all()); app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions(); } }