You can use 2 arrays with the updateOrCreate() method. The first array holds the keys you want to match by and the second the ones you want to update/insert.
e.g.
$product = Product::updateOrCreate(
['product_id' => $product_id],
[
'product_id' => $product_id,
'price' => trim($price),
'qty' => $qty,
'companies_id' => $company->id,
'persons_id' => $person->id,
'amount_range' => $owned,
'filling_date' => $filling_Date,
'transaction_date' => $transaction_date,
]);
I've added the field 'product_id' to illustrate how to do it with a unique field.
Matching the record this way overcomes the problems associated with date fields - especially the 'updated_at' field when using timestamps.