If you are looking to build a geo-search for records representing restaurants that have their own dynamic delivery radius, then using grids to define the areas is often the best approach. Each grid is defined as a number, and the availability for the grid is stored as an array of numbers in each restaurant record.
It's then a case of checking if the person searching is within one of the grids that a restaurant delivers to.
You can use the same approach with non grid based polygon locations such as counties, or cities/postcode areas.
There is a restaurant search example that you may find interesting here: https://www.algolia.com/developers/code-exchange/restaurant-search/