'array', 'image_urls' => 'array', 'offers' => 'array', ]; public static function ownerColumn(): string { if (self::$resolvedOwnerColumn !== null) { return self::$resolvedOwnerColumn; } self::$resolvedOwnerColumn = Schema::hasColumn('venues', 'vendor_id') ? 'vendor_id' : 'owner_user_id'; return self::$resolvedOwnerColumn; } public function setVendorIdAttribute($value): void { $this->attributes[self::ownerColumn()] = $value; } public function getVendorIdAttribute() { $column = self::ownerColumn(); return $this->attributes[$column] ?? null; } public function vendor() { return $this->belongsTo(User::class, self::ownerColumn()); } public function reservations() { return $this->hasMany(Reservation::class); } public function seatingAreas() { return $this->hasMany(SeatingArea::class); } public function tables() { return $this->hasMany(VenueTable::class); } }