One solution is - don't even bother. That's what i do. Dropped trash encounters. Only fights party get's into is meaningful fights and fights that make sense in setting. No more bunch of small encounters whose only purpose is to force players to spend some slots or other abilities and then force them to burn recovery abilities, so i can just force same expenditure again trough few encounters. That attrition game gets boring super fast. I activly encourage players to not spare resources "just in case there is bigger fight around corner". There isn't one. I telegraph trough descriptions if the fight is against someone important or against minions.
Now, to avoid combat being tedious and grindy, I tailor encounters. I know what's average my group can dish out per round if they go nova and if they don't go nova. So, "small" encounter is one where they can beat it with only their non expendable resources, and monsters have enough hp to survive one round of average damage, do their cool stuff once, then die round two. For "big" encounters- same thing, but they can survive average "nova", act once, die round two. If party rolls well (crits, above damage) they sometimes put them down in round one. Well, so what. At least they feel awesome cause they rolled super well. Either way, they get to use all their cool toys, feel like big heroes and have fun. If they fight big bad and maul him round one before it even gets to act, who cares. High fives and GG for all.
Other thing i do, is avoid cleanups. Sometimes luck isn't there. People roll low, lot's of misses, lots of low damage rolls. Once they drop opponents to 30% ( either in number of opponents or in number of total enemy hp), i zoom out from combat as a minigame and turn it into narration game. I tell them what oponents are doing ( fleeing, surrendering, some may fight to death) and then players just tell me what they do. No dice rolls needed. I know they will win, they know they will win. No point in dragging it on for few extra round just so they can confirm win trough dice.