Why recurring order becomes completed immediatelly after payment (no fulfillment status)?
So my question is why it's not changed to &quot;Fulfillment&quot; but to
&quot;Completed&quot; as soon as payment is done?

Because you're setting it to completed, the code you found is just an example.
For your case, it needs to be:
$next_state = $capture ? 'fulfillment' : 'authorization';