In a competitive city, proximity usually decides it, and that's the bit nobody can optimize. If you're not near the searcher, you're fighting a handicap on every query.
So you win where distance isn't doing all the work. Specific service pages rather than the head term. Longer queries. The stuff big players cover generically, and you can actually answer.
Order I'd go in:
Google profile first, and categories specifically. Most people set the primary once when they claim it and never look again. Then services, products, hours, all the fields nobody bothers with.
Reviews next, but velocity over count. A steady trickle looks different from 200 from three years ago.
Local citations are the foundation. They matter, and they won't move you in a hard market on their own. Consistency beats volume, and check what's already out there first because most businesses have listings they never created sitting on old data.
Content last, and only if it's properly local. Pages about your city that could be about anywhere do nothing.
One other thing. In a hard market, make sure you're actually losing before you spend money on it. Tracking from the wrong location or the wrong device will show you problems that aren't there.