def METHOD_NAME(  # type: ignore[override]
    cls, _root, info: ResolveInfo, /, *, number=None, order_id
):
    order = cls.get_node_or_error(info, order_id, only_type=Order, field="orderId")
    cls.check_channel_permissions(info, [order.channel_id])
    cls.clean_order(order)
    manager = get_plugin_manager_promise(info.context).get()
    if not is_event_active_for_any_plugin("invoice_request", manager.all_plugins):
        raise ValidationError(
            {
                "orderId": ValidationError(
                    "No app or plugin is configured to handle invoice requests.",
                    code=InvoiceErrorCode.NO_INVOICE_PLUGIN.value,
                )
            }
        )
    shallow_invoice = models.Invoice.objects.create(
        order=order,
        number=number,
    )
    invoice = manager.invoice_request(
        order=order, invoice=shallow_invoice, number=number
    )
    app = get_app_promise(info.context).get()
    if invoice and invoice.status == JobStatus.SUCCESS:
        order_events.invoice_generated_event(
            order=order,
            user=info.context.user,
            app=app,
            invoice_number=invoice.number,
        )
    else:
        order_events.invoice_requested_event(
            user=info.context.user, app=app, order=order
        )
    events.invoice_requested_event(
        user=info.context.user,
        app=app,
        order=order,
        number=number,
    )
    return InvoiceRequest(invoice=invoice, order=order)