async def METHOD_NAME(
    cls,
    table_class: t.Type[TableInstance],
    defaults: t.Dict[t.Union[Column, str], t.Any] = None,
    persist: bool = True,
    minimal: bool = False,
) -> TableInstance:
    """
    Build a ``Table`` instance with random data and save async.
    If the ``Table`` has any foreign keys, then the related rows are also
    created automatically.
    :param table_class:
        Table class to randomize.
    :param defaults:
        Any values specified here will be used instead of random values.
    :param persist:
        Whether to save the new instance in the database.
    :param minimal:
        If ``True`` then any columns with ``null=True`` are assigned
        a value of ``None``.
    Examples::
        # Create a new instance with all random values:
        manager = await ModelBuilder.build(Manager)
        # Create a new instance, with certain defaults:
        manager = await ModelBuilder.build(
            Manager,
            {Manager.name: 'Guido'}
        )
        # Create a new instance, but don't save it in the database:
        manager = await ModelBuilder.build(Manager, persist=False)
        # Create a new instance, with all null values set to None:
        manager = await ModelBuilder.build(Manager, minimal=True)
        # We can pass other table instances in as default values:
        band = await ModelBuilder.build(Band, {Band.manager: manager})
    """
    return await cls._build(
        table_class=table_class,
        defaults=defaults,
        persist=persist,
        minimal=minimal,
    )