private async Task ProcessEventPublishedAsync(EventPublished eventPublished)
    {
        using var scope = _serviceProvider.CreateScope();
        var repository = scope.ServiceProvider.GetRequiredService <IEventPublishedRepository>();

        eventPublished.Publish();
        await repository.UpdateAndCommit(eventPublished);

        await _eventBus.PublishAsync(eventPublished.Event);

        eventPublished.Complete();
        await repository.UpdateAndCommit(eventPublished);
    }