I may be missing the point entirely, but why is it relevant that he paid for dinner on Saturday night? Of course he did.
Anyway, meanwhile, this is your moment. You are going to get married, and this is how it will always be, unless you grit your teeth and have a chat.
Sit him down. Tell him that you were disappointed be your birthday is the same date every year, that he suddenly had to get you a present on Saturday, so put you on the spot to make a decision about what to get, when he could’ve asked any time in the preceding week/month.
Say he still had Sunday and Monday to come up with something small, but from now on this is how your birthday will go -
1 - you will give him a list of general ideas or specific gift ideas a couple of weeks before the birthday.
2 - you would like ....3 of the following to happen each year -
Breakfast in bed
Flowers
Chocolates
Balloons
Banners
More than one card, from him, the cat, the sparrow in the garden, whatever.
A little note in your bag for when you get to work...whatever!!!
It’s boring, tedious, but in theory you will never have to worry again, and he will know what you like.