public function getAllProperties(): ?array
    {
        $properties = null;
        // list all properties here, array_walk sucks on performance!
        foreach ($this as $property => $value) {
            if (Str::startsWith('_', $property)) {
                continue;
            }

            $properties[$property] = $value;
        }
        return $properties;
    }