use after_commit hooks to ensure transaction complete b4 publish