*/ use HasFactory, HasAchievements, HasApiTokens; /** * Get the attributes that should be cast. * * @return array */ protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; } public function achievements(): HasMany { return $this->hasMany(UserAchievement::class); } public function resolveRouteBinding($value, $field = null): ?User { return $this->where('name', 'ilike', $value)->firstOrFail(); } public function FlightController(): UserFlightController { return new UserFlightController($this); } public function flights(): HasMany { return $this->hasMany(UserFlight::class); } public function ImportedFlights(): HasMany { return $this->hasMany(ImportedFlight::class); } public function following(): HasMany { return $this->hasMany(Followee::class, 'user_id'); } public function followers(): HasMany { return $this->hasMany(Followee::class, 'followee_id'); } public function isFollowing(User $user): bool { return $this->following()->where('followee_id', $user->id)->exists(); } public function notifications(): HasMany { return $this->hasMany(Notification::class); } }