Depends on the engine type, but it sounds like the starter.
Could be the starter drive gear is dirty and not spinning out when the starter turns.
If you can get to the drive end spray it with some cleaner or compressed air.
Could be the starter is not turning fast enough to spin out the gear.
Check battery connections and charge on battery.
Most common problem with a Briggs is the plastic drive gear on the starter broke.
If it is a Kohler the end of the shaft may have broken.
Either way you will have to pull the starter.