'datetime', 'password' => 'hashed', 'last_login_at' => 'datetime', 'is_active' => 'boolean', 'role' => UserRole::class, ]; public function department(): BelongsTo { return $this->belongsTo(Department::class); } public function clientRequests(): HasMany { return $this->hasMany(ServiceRequest::class, 'client_id'); } public function assignedRequests(): HasMany { return $this->hasMany(ServiceRequest::class, 'assigned_to'); } public function requestComments(): HasMany { return $this->hasMany(RequestComment::class); } public function requestAttachments(): HasMany { return $this->hasMany(RequestAttachment::class); } public function activityLogs(): HasMany { return $this->hasMany(ActivityLog::class); } public function equipment(): HasMany { return $this->hasMany(Equipment::class, 'client_id'); } public function isAdmin(): bool { return $this->role === UserRole::ADMIN; } public function isManager(): bool { return $this->role === UserRole::MANAGER; } public function isTechnician(): bool { return $this->role === UserRole::TECHNICIAN; } public function isClient(): bool { return $this->role === UserRole::CLIENT; } public function isStaff(): bool { return $this->isAdmin() || $this->isManager() || $this->isTechnician(); } }