// Maybe don't validate the builder type in the construction functions?
        // Should be the responsibility of the caller to provide the right builder?

        public void ValidateOrder(Order order)
        {
            builder.ResetBuilder();
            builder.SetOrder(order);
            builder.ValidatePet();
            builder.ValidateUser();
            builder.ValidatePayment();
            builder.ValidateProducts();
            builder.ValidateServices();
        }