1]; /** @param Builder $query */ public function scopeVisibleTo(Builder $query, User $user): void { match ($user->purchasing_role) { PurchasingRole::Admin, PurchasingRole::Procurement, PurchasingRole::Finance => null, PurchasingRole::DepartmentHead => $query->where(fn ($visible) => $visible->where('department_id', $user->department_id)->orWhere('responsible_id', $user->id)), default => $query->where('responsible_id', $user->id), }; } protected static function booted(): void { static::deleting(fn () => throw new \LogicException('Preservar o planeamento.')); } }