CommitAsync's inner SaveChangesAsync already flushes the AddClaim rows + progress.IsPremium mutation alongside the inventory grants (same scoped DbContext). The trailing _db.SaveChangesAsync was a no-op in BuyPremium and only meaningful in AddPoints when no level crossed (no tx opened) — restructured to an else branch. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>