Why did you define the payment method twice?
Your foreign key to PaymentMethod
is payment_method
. So, if you define it once, it's ok.
You can try that:
$user = new User();
$paymentMethod = new PaymentMethod();
$paymentMethod->setUser($user);
$paymentMethod->save();
$user->setDefaultPaymentMethod($paymentMethod);
$user->save();
set
method use the relation name to define the relation.