def METHOD_NAME(
    cls,
    order: "order_models.Order",
    request_user: User,
    app: Optional["App"],
    manager: "PluginsManager",
    external_reference: Optional[str] = None,
):
    try:
        clean_mark_order_as_paid(order=order)
    except (PaymentError, ValueError) as e:
        message = str(e)
        transaction_mark_order_as_paid_failed_event(
            order=order, user=request_user, app=app, message=message
        )
        raise ValidationError(
            {
                "transaction": ValidationError(
                    message, code=OrderErrorCode.TRANSACTION_ERROR.value
                )
            }
        )
    mark_order_as_paid_with_transaction(
        order=order,
        request_user=request_user,
        app=app,
        manager=manager,
        external_reference=external_reference,
    )