hasMany(Event::class, 'calendarid'); // FK in calendarobjects } /* ui-specific metadata (color, sharing flags, json settings) */ public function meta(): HasOne { return $this->hasOne(CalendarMeta::class, 'calendar_id'); } /* get instances */ public function instances() { return $this->hasMany(CalendarInstance::class, 'calendarid'); } /* get the primary? instance for a user */ public function instanceForUser(?User $user = null) { $user = $user ?? auth()->user(); return $this->instances() ->where('principaluri', 'principals/' . $user->email) ->first(); } }