private async Task CleanupSoftDeletedStacksAsync(JobContext context)
    {
        var stackResults = await _stackRepository.GetSoftDeleted().AnyContext();

        _logger.CleanupStackSoftDeletes(stackResults.Total);

        while (stackResults.Documents.Count > 0 && !context.CancellationToken.IsCancellationRequested)
        {
            try {
                await RemoveStacksAsync(stackResults.Documents, context).AnyContext();
            }
            catch (Exception ex) {
                _logger.LogError(ex, "Error removing soft deleted stacks: {Message}", ex.Message);
            }

            if (context.CancellationToken.IsCancellationRequested || !await stackResults.NextPageAsync().AnyContext())
            {
                break;
            }
        }
    }