diff --git a/src/core/models/users.py b/src/core/models/users.py
index 07d73c7325b7701bd08d82be117b2506bb1ba364..0ab6c716e25656a7d98b1e212303066f19a94872 100644
--- a/src/core/models/users.py
+++ b/src/core/models/users.py
@@ -4,7 +4,7 @@ from contextlib import suppress
 from pathlib import Path
 from random import choices
 from string import ascii_lowercase, digits
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING, Any, TypeIs
 from uuid import uuid4
 
 from timezone_field import TimeZoneField
@@ -213,6 +213,10 @@ class PlatformUser(AbstractUser):
 
         return AnonUser()
 
+    @classmethod
+    def type_is(cls, obj: object) -> TypeIs['PlatformUser']:
+        return isinstance(obj, cls)
+
     def get_all_verified_addresses(self):
         """Return a list of all verified addresses (for legal logging purposes, e.g. hangar creation)."""
         return self.communication_channels.filter(is_verified=True).values_list('address', flat=True)