The advice I’ve seen is to back up your phone (iCloud or iTunes), factory reset, then restore your backup.
These things get bigger and bigger the older your phone is, because OS updates seem to always leave more and more shit laying around (probably for disaster recovery in case the update goes sideways).
Windows has a command you can run to purge all the old update shit to free up space. I wish Apple would get off their ass and implement the same.