'hashed', 'is_active' => IsActive::class, 'email_verified_at' => 'timestamp', ]; } public function canAccessPanel(Panel $panel): bool { if ($this->company?->verificationRequest?->status === VerificationStatus::REJECTED) { return false; } return $this->is_active === IsActive::ACTIVE; } #[Scope] protected function withoutDeveloper(Builder $query): void { $query->whereDoesntHave('roles', function ($q) { $q->where('name', RoleEnum::DEVELOPER); }); } #[Scope] protected function active(Builder $query): void { $query->where('is_active', IsActive::ACTIVE); } #[Scope] protected function superAdmin(Builder $query): void { $query->whereHas('roles', function ($q) { $q->whereIn('name', [RoleEnum::DEVELOPER, RoleEnum::ADMINISTRATOR]); }); } public function company(): HasOne { return $this->hasOne(Company::class); } public function contacts(): HasMany { return $this->hasMany(Contact::class, 'replied_by'); } public function dataChangeRequests(): HasMany { return $this->hasMany(DataChangeRequest::class); } public function dataChangeReviews(): HasMany { return $this->hasMany(DataChangeReview::class, 'reviewer_id'); } public function news(): HasMany { return $this->hasMany(News::class, 'author_id'); } public function verificationRequests(): HasMany { return $this->hasMany(VerificationRequest::class, 'submitted_by'); } public function verificationReviews(): HasMany { return $this->hasMany(VerificationReview::class, 'reviewer_id'); } public function visitors(): HasMany { return $this->hasMany(Visitor::class); } }