'array', 'capabilities' => 'array', 'compute_budget' => 'array', 'last_heartbeat_at' => 'datetime', 'registered_at' => 'datetime', ]; public function workspace(): BelongsTo { return $this->belongsTo(Workspace::class); } public function currentTask(): BelongsTo { return $this->belongsTo(FleetTask::class, 'current_task_id'); } public function tasks(): HasMany { return $this->hasMany(FleetTask::class); } public function creditEntries(): HasMany { return $this->hasMany(CreditEntry::class); } public function syncRecords(): HasMany { return $this->hasMany(SyncRecord::class); } public function scopeOnline(Builder $query): Builder { return $query->whereIn('status', [self::STATUS_ONLINE, self::STATUS_BUSY]); } public function scopeIdle(Builder $query): Builder { return $query->where('status', self::STATUS_ONLINE) ->whereNull('current_task_id'); } }