Cloudflare turnstile (free version) made spam negligible. Anything that got past it either got filtered out by stopforum spam or - first post pre moderation. So my fall back is
1) First post premoderation
2) Spam filter settings for first 2 posts that contain a link to go to pre-moderation
3) Setting the words d.rugs, g.ambling and Temu temu in the spam filter (the first two send the religious spam posts for moderation).
So the only thing that gets through, rarely, is the occasional human spammer and they go straight for manual approval. Nothing has got past the above.
I wasn't too happy about having first post moderation for genuine users, but it was necessary and hasn't been an issue - they get approved quickly. New members don't usually post links in their first two posts so that setting works to catch spammers but usually they get spotted by the first post (link or no link).
A tip for that is an addon that emails moderators when something goes to the approval queue. I set a VIP email ping sound on my phone, so if anything goes to the approval queue my phone pings (hence new members can be approved quickly and no need to be online all the time).
Also have an AI content moderation addon. Which isn't really for spam because spam doesn't get through - but it spots any illegal content and removes it for manual moderation. That was for mitigating a risk assessment for the online safety act but works really well and can also moderate DM's (if you use them). I know it works well because it has the occasional false positive! Not really a false positive - the addon is just doing its job and its not often someone posts the word steal eg in a normal context.
There's also a crowd moderation addon - which means members reporting a post sends the post for manual approval (various settings for which members are approved to do that etc). That hasn't been needed so far but useful.