'datetime', 'is_active' => 'boolean', 'password' => 'hashed', ]; public function organization(): BelongsTo { return $this->belongsTo(Organization::class); } public function groups(): BelongsToMany { return $this->belongsToMany(Group::class, 'user_groups'); } public function createdCourses(): HasMany { return $this->hasMany(Course::class, 'created_by'); } public function courseRequests(): HasMany { return $this->hasMany(CourseRequest::class, 'requested_by_user_id'); } public function approvedCourseRequests(): HasMany { return $this->hasMany(CourseRequest::class, 'approved_by_user_id'); } public function courseAssignments(): HasMany { return $this->hasMany(CourseAssignment::class); } public function testAttempts(): HasMany { return $this->hasMany(TestAttempt::class); } public function scormData(): HasMany { return $this->hasMany(ScormData::class); } public function courseProgress(): HasMany { return $this->hasMany(UserCourseProgress::class); } public function logs(): HasMany { return $this->hasMany(Log::class); } public function isAdministrator(): bool { return $this->hasRole('Administrator'); } public function isManager(): bool { return $this->hasRole('Manager'); } public function isCurator(): bool { return $this->hasRole('Curator'); } public function isStudent(): bool { return $this->hasRole('Student'); } }