'datetime', 'departure_time' => 'datetime', 'arrival_time' => 'datetime', 'capacity' => 'int', 'price' => 'float', 'type' => FlightType::class, 'status' => FlightStatus::class, ]; protected $fillable = [ 'airline', 'flight_number', 'origin', 'destination', 'departure_date', 'departure_time', 'arrival_time', 'flight_class', 'capacity', 'price', 'image', 'views', 'type', 'status' ]; public function travelType() { return $this->belongsTo(TravelType::class); } public function comments() { return $this->hasMany(Comment::class); } public function favorites() { return $this->morphMany(Favorite::class, 'favoritable'); } public function reservations() { return $this->morphMany( Reservation::class, 'reservable'); } #[Scope] public function applySearch(Builder $query, array $filters): void { $query ->when($filters['origin'] ?? null, function($query,$origin){ $query->where('origin',$origin); }) ->when($filters['destination'] ?? null, function($query,$destination){ $query->where('destination',$destination); }); } }