public static function cast($document): self
    {
        if ($document instanceof self) {
            return $document;
        }

        if (is_string($document)) {
            return self::decode($document);
        }

        return self::fromIterable($document);
    }
public static function cast($document): self
    {
        if ($document instanceof self) {
            return $document;
        }

        if (is_string($document)) {
            return self::decode($document);
        }

        return self::fromIterable($document);
    }
public static function cast ( $ document ) : self { if ( $ document instanceof self ) { return $ document ; } if ( is_string ( $ document ) ) { return self :: decode ( $ document ) ; } return self :: fromIterable ( $ document ) ; }
Cast a document to an instance of this document class.

@param Document|array|string $document
@return Document
Cast a document to an instance of this document class .