I am following the guide found here. It states that:
If an order is placed and contains a line item that hasfulfillment_service set to your fulfillment service, then Shopify automatically creates a fulfillment and sets thefulfillment_statusto "pending" until your fulfillment service completes it.
I am not seeing this in my instance of Shopify. I created a new fulfillment service and, when setting a new order as paid, I still have to manually click a button to "request fulfillment".
Also the same section quotes
If the fulfillment isn't initiated from the Shopify admin, then your fulfillment service will need to create the fulfillment.
Should I subscribe to the "order payment" webhook and then create a fulfillment object whenever this webhook is triggered?
Fulfillment Services are expected to create and listen to fulfillments/create webhooks as-per the documentation:
In order to be notified about new fulfillments you should subscribe your application to the
fulfillments/createwebhook. This webhook fires every time an order is marked "fulfilled", and the data is sent to a URL that you registered and stored in JSON format. You can read more about webhooks here. After receiving and processing the webhook your service should make a request to "complete" the fulfillment. You can also update the fulfillment via the API with other information like tracking_numbers rather than waiting for Shopify to ask for them.
Whether or not you have to manually request fulfillment from within the admin depends on the shop's settings, specifically under /settings/checkout in the Order processing section where you can choose whether or not to automatically fulfill an order's line items when it is paid.
Hope that helps.