Your code looks correct to me. However it seems like the columns are not being passed correctly. The correct code should look like this:
ItemUser::updateOrCreate([
'user_id' => auth()->user()->id,
'item_id' => request('item_id'),
], [
'selling_currency' => request('sellingcurrency'),
'selling_price' => request('sellingprice'),
'selling_quantity' => request('sellingqty'),
'buying_currency' =>request('buyingcurrency'),
'buying_price' => request('buyingprice'),
'buying_quantity' => request('buyingqty'),
]);
I think it's going wrong here because either the user_id is empty or the request doesn't have a item_id? Can you check that first?
Documentation: https://laravel.com/docs/5.6/eloquent#other-creation-methods