def store!
      storage_results = storages.map do |storage|
        begin
          storage.perform!
        rescue => ex
          ex
        end
      end

      first_exception, *other_exceptions = storage_results.select { |result| result.is_a? Exception }

      if first_exception
        other_exceptions.each do |exception|
          Logger.error exception.to_s
          Logger.error exception.backtrace.join('\n')
        end
        raise first_exception
      else
        true
      end
    end
def store!
      storage_results = storages.map do |storage|
        begin
          storage.perform!
        rescue => ex
          ex
        end
      end

      first_exception, *other_exceptions = storage_results.select { |result| result.is_a? Exception }

      if first_exception
        other_exceptions.each do |exception|
          Logger.error exception.to_s
          Logger.error exception.backtrace.join('\n')
        end
        raise first_exception
      else
        true
      end
    end
Attempts to use all configured Storages, even if some of them result in exceptions.
 Returns true or raises first encountered exception.