public function purgeAttributes()
    {
        // Get the attribute keys
        $keys = array_keys($this->getAttributes());

        // Filter out keys that should purged
        $attributes = array_filter($keys, function ($key) {
            // Remove attributes that should be purged
            if (in_array($key, $this->getPurgeable())) {
                return false;
            }

            // Remove attributes ending with _confirmation
            if (Str::endsWith($key, '_confirmation')) {
                return false;
            }

            // Remove attributes starting with _ prefix
            if (Str::startsWith($key, '_')) {
                return false;
            }

            return true;
        });

        // Keep only the attributes that were not purged
        $this->attributes = array_intersect_key($this->getAttributes(), array_flip($attributes));
    }