private function provideColumn(ItemInterface $item, array $columnConfig): string
    {
        if (isset($columnConfig['template'])) {
            return $this->itemRenderer->renderItem(
                $item,
                $columnConfig['template']
            );
        }

        if (!isset($this->columnValueProviders[$columnConfig['value_provider']])) {
            throw new InvalidArgumentException(
                sprintf(
                    'Column value provider "%s" does not exist',
                    $columnConfig['value_provider']
                )
            );
        }

        $columnValue = $this
            ->columnValueProviders[$columnConfig['value_provider']]
            ->getValue($item);

        return $columnValue ?? '';
    }