<?php  namespace App\Traits;  use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Carbon; use App\Contracts\HasLimitedScope; use App\Notifications\VerifyEmail; use App\Http\Resources\UserResource; use App\Notifications\LoginViaEmail; use App\Notifications\ResetPassword; use Illuminate\Support\Facades\Hash; use Illuminate\Database\Eloquent\Builder; use App\Http\Resources\UserPublicResource; use Illuminate\Database\Eloquent\Prunable; use Illuminate\Notifications\AnonymousNotifiable; use Illuminate\Database\Eloquent\Relations\MorphOne;  trait IsUser { 	use Prunable, HasJwt;  	public static function canRegisterViaApi(): bool 	{ 		return true; 	}  	protected static function bootIsUser(): void 	{ 		static::deleting(static function (object $model): void { 			$model->authParent?->delete(); 		}); 	}  	public function authParent(): MorphOne{}  	public function profileRoute(?string $default = null): ?string{}  	public function getUserType(): string{}  	public function verifyEmailNotification(): VerifyEmail{}  	public function verifyEmailUrl(): string{}  	public function verifyEmailExpiration(): ?Carbon{}  	public function verifyEmailRedirectUrl(): ?string{}  	public function passwordResetNotification(string $token): ResetPassword{}  	public function passwordResetTokenUrl(string $token): string{}  	public function passwordResetRedirectUrl(): ?string{}  	public function loginViaEmailNotification(string $url): LoginViaEmail{}  	public function loginViaEmailExpiration(): ?Carbon{}  	public function getModelResource(User $authParent): UserResource{}  	public function getModelPublicResource(User $authParent): UserPublicResource{}  	public function getUserExtraData(?Request $request = null): ?array{}  	public function getPublicUserExtraData(?Request $request = null): ?array{}  	public function mustVerifyEmail(): bool{}  	public function hasLimitedScope(HasLimitedScope $model): bool{}  	public function updateProfileValidationRules(?Request $request = null): array{}  	public function updateProfileLogic(Request $request): array{}  	public function scopeAvailable(Builder $query): Builder{}  	public function scopeIncludes(Builder $query): Builder{}  	public function scopeSearch(Builder $query, ?string $search = null): Builder{}  	public function scopeNotifiable(Builder $query): Builder{}  	public function scopeCanViewRoute(Builder $query, ?string $route = null): Builder{}  	public function scopeUserScope(Builder $query): Builder{}  	public function scopeLoginLogic(Builder $query, Request $request): Builder{}  	public function postLoginCheck(Request $request): bool{}  	public function prunable(): Builder{} }