"date", ]; public function user(): BelongsTo { return $this->belongsTo(User::class); } public function vacationRequest(): BelongsTo { return $this->belongsTo(VacationRequest::class); } public function yearPeriod(): BelongsTo { return $this->belongsTo(YearPeriod::class); } public function scopeApproved(Builder $query): Builder { return $query->whereRelation( "vacationRequest", fn(Builder $query): Builder => $query->states(VacationRequestStatesRetriever::successStates()), ); } public function scopePending(Builder $query): Builder { return $query->whereRelation( "vacationRequest", fn(Builder $query): Builder => $query->states(VacationRequestStatesRetriever::pendingStates()), ); } public function scopeWhereTypes(Builder $query, Collection $types): Builder { return $query->whereRelation( "vacationRequest", fn(Builder $query): Builder => $query->whereIn("type", $types), ); } }