<?php  namespace App\Traits;  use App\Models\User; use Illuminate\Http\Request; use App\Contracts\HasLimitedScope; use App\Http\Resources\UserResource; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Prunable; use Illuminate\Notifications\Notification; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Database\Eloquent\Relations\MorphOne; use Illuminate\Auth\Notifications\VerifyEmail as VerifyEmailNotification; use Illuminate\Auth\Notifications\ResetPassword as ResetPasswordNotification;  trait IsUser { 	use Prunable, HasJwt;  	public function authParent(): MorphOne{}  	public function profileRoute(?string $default = null): ?string{}  	public function getUserType(): string{}  	public function verifyEmailNotification(): Notification{}  	public function passwordResetNotification(string $token): Notification{}  	public function passwordResetTokenUrl(string $token): string{}  	public function verifyEmailRedirectUrl(): ?string{}  	public function passwordResetRedirectUrl(): ?string{}  	public function getModelResource(User $authParent): JsonResource{}  	public function getUserExtraData(?Request $request = null): ?array{}  	public function getPublicUserExtraData(?Request $request = null): ?array{}  	public function mustVerifyEmail(): bool{}  	public function isAvailable(): 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 prunable(): Builder{}  	protected static function bootIsUser(): void 	{ 		static::deleting(function ($model): void { 			if ($model->authParent()->exists()) { 				$model->authParent->delete(); 			} 		}); 	} }