'boolean', ]; /** * Get the roles that have this permission */ public function roles(): BelongsToMany { return $this->belongsToMany(Role::class, 'role_permissions') ->withTimestamps(); } /** * Get users who have this permission directly */ public function users(): BelongsToMany { return $this->belongsToMany(User::class, 'user_permissions') ->withPivot(['granted', 'branch_code', 'assigned_at', 'expires_at']) ->withTimestamps(); } /** * Scope to filter by module */ public function scopeByModule($query, string $module) { return $query->where('module', $module); } /** * Scope to filter active permissions */ public function scopeActive($query) { return $query->where('is_active', true); } }