'boolean', 'is_active' => 'boolean', 'published_at' => 'datetime', ]; public function category(): BelongsTo { return $this->belongsTo(CourseCategory::class); } public function creator(): BelongsTo { return $this->belongsTo(User::class, 'created_by'); } public function modules(): HasMany { return $this->hasMany(CourseModule::class); } public function tests(): HasMany { return $this->hasMany(Test::class); } public function assignments(): HasMany { return $this->hasMany(CourseAssignment::class); } public function scormData(): HasMany { return $this->hasMany(ScormData::class); } public function userProgress(): HasMany { return $this->hasMany(UserCourseProgress::class); } public function requestItems(): HasMany { return $this->hasMany(CourseRequestItem::class); } public function users() { return $this->belongsToMany(User::class, 'course_assignments'); } }