def METHOD_NAME(  # type: ignore[override]
    cls,
    _root,
    info: ResolveInfo,
    /,
    *,
    allow_stock_to_be_exceeded,
    id: str,
    notify_customer
):
    user = info.context.user
    user = cast(User, user)
    fulfillment = cls.get_node_or_error(info, id, only_type=Fulfillment)
    order = fulfillment.order
    cls.check_channel_permissions(info, [order.channel_id])
    cls.clean_input(info, fulfillment)
    manager = get_plugin_manager_promise(info.context).get()
    app = get_app_promise(info.context).get()
    site = get_site_promise(info.context).get()
    try:
        fulfillment = approve_fulfillment(
            fulfillment,
            user,
            app,
            manager,
            site.settings,
            notify_customer=notify_customer,
            allow_stock_to_be_exceeded=allow_stock_to_be_exceeded,
        )
    except InsufficientStock as exc:
        errors = prepare_insufficient_stock_order_validation_errors(exc)
        raise ValidationError({"stocks": errors})
    order.refresh_from_db(fields=["status"])
    return FulfillmentApprove(fulfillment=fulfillment, order=order)