def METHOD_NAME(cls, info: ResolveInfo, fulfillment):
    if fulfillment.status != FulfillmentStatus.WAITING_FOR_APPROVAL:
        raise ValidationError(
            "Invalid fulfillment status, only WAITING_FOR_APPROVAL "
            "fulfillments can be accepted.",
            code=OrderErrorCode.INVALID.value,
        )
    OrderFulfill.check_lines_for_preorder([line.order_line for line in fulfillment])
    site = get_site_promise(info.context).get()
    if (
        not site.settings.fulfillment_allow_unpaid
        and not fulfillment.order.is_fully_paid()
    ):
        raise ValidationError(
            "Cannot fulfill unpaid order.",
            code=OrderErrorCode.CANNOT_FULFILL_UNPAID_ORDER.value,
        )