It’s a general rule that if you host, you pay. Of course, if you’re specifying in your invitation that you expect everyone to chip in, that’s okay. Then they have all the information they need to decide whether or not they’re going to come. You can’t force your friends to spend money on you, that’s crazy. This is even true if it’s your birthday. Maybe a friend offers to take you out, and then in that case it’s clear who is expected to pay. But if you’re throwing a birthday dinner, you need to be the one to throw down your card.
It’s also a general rule that if you own a restaurant and your friends come, you should probably throw them a free dessert or glass of champagne. You don’t have to, but it’s a great way to keep your returning customers happy. Most restaurants build this into their budget since it’s good marketing.