'array', 'last_online_at' => 'datetime', ]; } public function organization(): BelongsTo { return $this->belongsTo(Organization::class, 'organization_id'); } public function branch(): BelongsTo { return $this->belongsTo(Branch::class, 'branch_id'); } public function receptionDesk(): BelongsTo { return $this->belongsTo(ReceptionDesk::class, 'reception_desk_id'); } public function isOnline(int $staleMinutes = 10): bool { return $this->status === 'online' && $this->last_online_at && $this->last_online_at->gte(now()->subMinutes($staleMinutes)); } }