A few billing conditionals are harmless. Hundreds are a platform risk.
When pricing rules live inside product code, every commercial change becomes an engineering migration. Support cannot explain invoice results. Finance cannot audit corrections. Product teams become afraid of changing packaging.
Move billing rules into billing objects: products, prices, subscriptions, usage records, invoice lines, taxes, discounts, and credits.
Your application should report events and display state. The billing system should decide how money is calculated.