BudgetPeriodType::class, 'rollover_type' => RolloverType::class, 'period_duration' => 'integer', 'period_start_day' => 'integer', ]; } public function user(): BelongsTo { return $this->belongsTo(User::class); } public function category(): BelongsTo { return $this->belongsTo(Category::class); } public function label(): BelongsTo { return $this->belongsTo(Label::class); } public function periods(): HasMany { return $this->hasMany(BudgetPeriod::class); } public function getCurrentPeriod(): ?BudgetPeriod { return $this->periods() ->where('start_date', '<=', now()) ->where('end_date', '>=', now()) ->first(); } }