hasOne(DriverToken::class, 'captain_id', 'id'); } public function car() { return $this->hasOne(CarRegistration::class, 'driverID', 'id'); } public function orders() { return $this->hasMany(DriverOrder::class, 'driver_id', 'id'); } public function ratings() { return $this->hasMany(RatingDriver::class, 'driver_id', 'id'); } public function documents() { return $this->hasMany(DriverDocument::class, 'driverID', 'id'); } public function location() { return $this->hasOne(CarLocation::class, 'driver_id', 'id'); } public function profileImage() { return $this->hasOne(ImageProfileCaptain::class, 'driverID', 'id'); } public function healthAssurance() { return $this->hasOne(DriverHealthAssurance::class, 'driver_id', 'id'); } public function gift() { return $this->hasOne(DriverGift::class, 'driver_id', 'id'); } // ── Scopes ── public function scopeActive($query) { return $query->whereIn('status', ['notDeleted', 'active']); } public function scopeById($query, string $driverId) { return $query->where('id', $driverId); } // ── Helpers ── public function getAverageRating(): float { return round($this->ratings()->avg('rating') ?? 5.0, 2); } }