Die Erkennung von Strings wie 'next month' durch die DateTime-Klasse ist überraschend und kopfschmerzträchtig. Ich vermeide das, wenn es irgend geht. Hilft Dir …
<?php
echo (new DateTime('now +1 month' ) )->format('Y-m-d'). PHP_EOL;
echo (new DateTime('2022-08-01 +1 month' ) )->format('Y-m-d'). PHP_EOL;
weiter? Die zweite Zeile geht vom Monatsanfang aus. Durch Deine Angabe 'next month' werden zum heutigen 31.08.2022 eben 31 Tage (die Länge des aktuellen Monats) addiert - und da ist halt der 01. Oktober: „Kann ja keiner ahnen, was Du willst.“
Du musst/kannst aber als Ausgangspunkt zum Monatsanfang...