As long as the product in an order has a location attached to it and is set as a "physical item" with inventory for the product associated with that specific location, a fulfillment order will automatically be created when the order is completed. Then you're totally right that you'd want to create a fulfillment using the fulfillment endpoint here. Once that's done and you have a fulfillment associated with the fulfillment order for an order (it is a little bit like a nesting doll for sure!) - you can then create a fulfillment event to set the status of the order to "delivered" using this resource.
Hope this helps/makes sense - let us know if we can clarify further, happy to dig into this more deeply if needed.