public static function prepareMultiInsert(string $table, array $rows, array $columns = []): array
    {
        if (! $columns) {
            $columns = static::extractColumnsFromRows($rows);
        }
        $columns = static::escapeSqlWords($columns);

        [$params, $valueParts] = array_values(static::generateMultiParams($rows, $columns));

        $sql = 'INSERT INTO ' . static::escapeSqlWords($table) . ' (';
        $sql .= implode(', ', $columns);
        $sql .= ') VALUES ';
        $sql .= implode(', ', $valueParts);

        return [
            'sql' => $sql,
            'params' => $params,
        ];
    }