82c79c1306
Apply the same FOR UPDATE locking pattern across 8 providers: - RioPay: added FOR UPDATE lock (had none at all) - CryptoBot: moved lock before status check, removed redundant lock - WATA: moved lock before is_paid commit, removed redundant lock - Freekassa: moved lock before is_paid commit, removed redundant lock - KassaAI: moved lock before is_paid commit, removed redundant lock - MulenPay: moved lock before is_paid commit, removed redundant lock - Pal24: moved lock before is_paid commit, removed redundant lock - SeverPay: moved lock before is_paid check, removed redundant lock Pattern applied to all: acquire FOR UPDATE with populate_existing=True immediately after finding the payment, replace intermediate commits with inline assignments + flush(), re-check is_paid from locked row.