There is a simple solution: having two bank accounts.
One will be your central and main account, where your paycheck is deposited. You will use this to pay off bills. You will set this up to automatically transfer money to the other bank which is dedicated for discretionary spending. The amount you transfer will be determined by your budget of course.
The second one, will be just that, secondary, for discretionary spending. This is the money you can spend, without worrying about spending all of your money. As long as you separate your money-depending on what each one will be spent on-you won’t have to worry about spending most of your money on one thing and having little or nothing left for others (bills, saving etc.)
Alternatively, you can follow ‘envelope budgeting‘ and not worry about having to create two bank accounts. With envelope budgeting, you withdraw the money as soon as you get paid and then allocate them-using a real envelope or something similar-to different categories.
Not to be ignored, this is all assuming you already have a ‘savings account’ to which you transfer money automatically. If you don’t, you need to create one right away!