You have received some complicated advice from others. My suggestion is to keep it simple, if there is a way to preserve an advantage by doing so. After the cut at move 30, W has a huge advantage in the local fight. Let's see if we can find some simple ways to profit from the attack without getting into an overly complicated fight.

in the game is fine, but leads to a difficult fight. Consider instead simply pressing at K16. If B pushes through and cuts, you can kill, as in the game. If B extends to K17, answer simply at J16, keeping B confined with no weakness. If B pushes again at J17, either hane at H17 if your reading says you can kill (note that the F17 stone becomes very useful now), or answer safely again at H16. Maybe B can get a small life in gote, but the result is still good for W.

is clearly aiming at the L14 wedge. The game move is an aggressive response and is objectively good, but simply playing K14 to immobilize the three B stones would be much simpler. I think this gives W more than enough territory to win.

is walking a tightrope with the L14 wedge. I would play N13 to capture the important B stone and eliminate all bad aji. This would put W firmly in control of the game, with little chance for a B comeback.

looks great to me -- an honest move which resolves the situation clearly in W favor. There should be no way for the surrounded B stones to live after this. B can get some compensation with a hane at M10, but even so W has a big lead.
If W neglects this play, what happens if B plays hane at K18 and N18 (gaining a liberty), then comes back to wedge at L14? Ouch.

was the losing move in this fight. This move loses a critical liberty and is not necessary, as B cannot get an eye around here. Simply hane at H18, connecting safely to the group to the left. Live and let die.