Observer on event sales_order_place_before can prevent the order being placed. Example, if the order is below $100, order won't be placed, and the message will appear in checkout page. getData('order') returns Magento/Sales/Model/Order object. If you need to check the order items, you can use $order->getAllItems()
That is not allowed by Magento which is technically correct, if you still want to place order you can place back-order please refer below link:
Also see this link
If you still want this their are several ways to do so:
1). You can customise backend part fully and load shipping and payment methods which is to tough.
2). You can create same attribute ...
Can you confirm that this module exists: module-inventory-indexer?
If not, do composer update to get this module
composer require module-inventory-indexer
This file is readable vendor/magento/module-inventory-indexer/etc/communication.xml?
If not fix permissions