20 и 30 являются технически постоянными, вы не можете иметь их как имена в запросах формы или обращаться к ним как к свойствам объектов, это синтаксическая ошибка
Либо жестко закодируйте значения, если они постоянны
$paymentDefinition_0->setName('1stPayment')
->setType('REGULAR')
->setFrequency('DAY')
->setFrequencyInterval('1')
->setCycles('1000')
->setAmount(new Currency(array(
'value' => 20,
'currency' => 'USD'
)));
$paymentDefinition_1->setName('2nd Payment')
->setType('REGULAR')
->setFrequency('DAY')
->setFrequencyInterval('1')
->setCycles('1000')
->setAmount(new Currency(array(
'value' => 30,
'currency' => 'USD'
)));
Или присвойте им имя строки в форме HTML и получите доступ к этому имени как свойству объекта запроса
Например
<form action="/" method="post">
@csrf
<input type="number" name="paymentDefinition_0" value="20"><br>
<input type="number" name="paymentDefinition_1" value="30"><br>
<button type="submit">Submit</button>
</form>
И получите доступ соответственно
$paymentDefinition_0->setName('1stPayment')
->setType('REGULAR')
->setFrequency('DAY')
->setFrequencyInterval('1')
->setCycles('1000')
->setAmount(new Currency(array(
'value' => $request->paymentDefinition_0,
'currency' => 'USD'
)));
$paymentDefinition_1->setName('2nd Payment')
->setType('REGULAR')
->setFrequency('DAY')
->setFrequencyInterval('1')
->setCycles('1000')
->setAmount(new Currency(array(
'value' => $request->paymentDefinition_1,
'currency' => 'USD'
)));
Надеюсь, это поможет