'array', 'is_active' => 'boolean', ]; } /** Public display label (Room 4, Counter 2, etc.). Falls back to name. */ public function displayDestination(): string { $destination = trim((string) ($this->destination ?? '')); return $destination !== '' ? $destination : (string) $this->name; } protected static function booted(): void { static::creating(function (self $counter) { $counter->uuid ??= (string) Str::uuid(); }); } public function organization(): BelongsTo { return $this->belongsTo(Organization::class, 'organization_id'); } public function branch(): BelongsTo { return $this->belongsTo(Branch::class, 'branch_id'); } public function department(): BelongsTo { return $this->belongsTo(Department::class, 'department_id'); } public function serviceQueues(): BelongsToMany { return $this->belongsToMany(ServiceQueue::class, 'queue_counter_service_queue', 'counter_id', 'service_queue_id') ->withPivot('priority'); } public function tickets(): HasMany { return $this->hasMany(Ticket::class, 'counter_id'); } }