A feature test asserting a 302 and a flash message proves the controller ran. It does not prove the order was created, and it passes just as happily when the write silently failed.
public function testPlacingAnOrderStoresIt()
{
$this->actingAs($this->customer())
->post('/checkout', ['sku' => 'FR-100', 'quantity' => 2])
->assertRedirect('/orders');
$this->assertDatabaseHas('orders', [
'customer_id' => $this->customer()->id,
'status' => 'pending',
]);
}
The response assertion and the database assertion answer different questions, and only the second one is about the feature. assertDatabaseMissing is the companion worth using on the failure paths — a validation test that only checks the error message does not prove nothing was written.