def validated_provides!
      if missing_requirements.any?
        raise Coach::Errors::MiddlewareDependencyNotMet.new(
          @middleware, @previous_middlewares, missing_requirements
        )
      end

      @middleware.provided + provided_by_chain
    end
def validated_provides!
      if missing_requirements.any?
        raise Coach::Errors::MiddlewareDependencyNotMet.new(
          @middleware, @previous_middlewares, missing_requirements
        )
      end

      @middleware.provided + provided_by_chain
    end
Aggregates provided keys from the given middleware, and all the middleware it uses.
 Can raise at any level assuming a used middleware is missing a required dependency.