approver(amount, category) routing expense claims: anything ≤ 5,000 → 'auto'; ≤ 50,000 → 'manager'; above that → 'director' — EXCEPT the 'travel' category, which always needs at least 'manager' even under 5,000.approver(3000, 'meals')
'auto'
Small non-travel claims auto-approve.
approver(3000, 'travel')
'manager'
Travel never auto-approves.
Compute the tier first, then apply the exception.
Or check category == 'travel' inside the first branch.