hasMany(CourseClass::class); } public function courseRegistrations(): HasMany { return $this->hasMany(CourseRegistration::class); } public function courseRegistrationSubmissions(): HasMany { return $this->hasMany(CourseRegistrationSubmission::class); } public function tuitionInvoices(): HasMany { return $this->hasMany(TuitionInvoice::class); } protected function casts(): array { return [ 'semester' => Semester::class, 'start_date' => 'date', 'end_date' => 'date', 'is_active' => 'boolean', 'open_semesters' => 'array', ]; } protected function formattedStartDate(): Attribute { return Attribute::make( get: fn () => $this->start_date->format('d M Y'), ); } protected function formattedEndDate(): Attribute { return Attribute::make( get: fn () => $this->end_date->format('d M Y'), ); } }