I don't like your test. The premise is incorrect because your real form data will not include id, created_at, updated_at or deleted_at; but, your test request does include them. I also don't know what the get request proves (in the context of editing a Product)?
In my opinion, this would be a better test of functionality you are trying to prove - and more succinct too:
/** @test */
public function a_user_can_update_a_product()
{
$product = Product::factory()->create();
$this->post(route('product.edit', $product->id), ['name' => 'Changed']);
$this->assertDatabaseHas('products', ['id' => $product->id, 'name' => 'Changed']);
}