ulid ??= (string) Str::ulid(); }); } protected function casts(): array { return [ 'password' => 'hashed', 'status' => EarnMemberStatus::class, 'email_verified_at' => 'datetime', 'last_login_at' => 'datetime', ]; } public function audits(): HasMany { return $this->hasMany(EarnAudit::class); } public function legalAcceptances(): HasMany { return $this->hasMany(EarnLegalAcceptance::class); } public function canUseApi(): bool { return ! $this->trashed() && $this->status === EarnMemberStatus::Active && $this->hasVerifiedEmail(); } public function sendEmailVerificationNotification(): void { $this->notify(new EarnVerifyEmail); } }