$p], ['slug' => $p] ); } // ─── HRD ─── akses penuh ke semua permission $hrdRole = Role::where('nama_role', 'hrd')->first(); if ($hrdRole) { $hrdRole->permissions()->sync(Permission::all()); } // ─── MANAGER ─── approve presensi & izin, lihat laporan kehadiran & izin $managerRole = Role::where('nama_role', 'manager')->first(); if ($managerRole) { $perms = Permission::whereIn('nama_permission', [ 'view_dashboard', 'view_pegawai', 'view_pegawai_detail', 'view_jadwal', 'view_presensi_team', 'approve_presensi', 'view_izin_team', 'approve_izin', 'view_surat_izin', 'approve_surat_izin', 'view_laporan', 'view_laporan_izin', ])->get(); $managerRole->permissions()->sync($perms); } // ─── SUPERVISOR ─── approve presensi, lihat laporan kehadiran & penjadwalan $supervisorRole = Role::where('nama_role', 'supervisor')->first(); if ($supervisorRole) { $perms = Permission::whereIn('nama_permission', [ 'view_dashboard', 'view_jadwal', 'view_presensi_team', 'approve_presensi', 'view_laporan', ])->get(); $supervisorRole->permissions()->sync($perms); } // ─── STAFF ─── hanya mobile (tidak ada view_dashboard = tidak bisa akses web) $staffRole = Role::where('nama_role', 'staff')->first(); if ($staffRole) { $perms = Permission::whereIn('nama_permission', [ 'view_presensi_self', 'create_presensi', 'create_izin', 'create_lembur', ])->get(); $staffRole->permissions()->sync($perms); } } }