I think a simpler approach would be to utilize the Lnbits APIs, as it will handle the that tasks.
Additionally, you can use "scrub" for zap forwarding, ensuring that payments are automatically redirected to the user's personal wallet.
However, it's important to note that forwarding may not be entirely reliable due to the invoice listener issue on Lnbits.
Consequently, I am in the process of developing my own open-source zap forwarding mechanism.