Do I still need an Eloquent decimal cast for DECIMAL(10,6) columns in Laravel 12 / PHP 8.2?

I’m building a Laravel 12 e‑commerce site (PHP 8.2).
Product prices are stored in MySQL as DECIMAL(10,6):

base_price DECIMAL(10,6),
profit     DECIMAL(10,6)

Many articles recommend adding a cast in the model to avoid floating‑point errors:

AppModelsProduct
protected function casts(): array
{
    return [
        'base_price' => 'decimal:6',
        'profit'     => 'decimal:6',
    ];
}

What I tried

  • With no cast and with the decimal:6 cast I get exactly the same results in my calculations.
  • Simple test:
$a = "1097.500000";
$b = "835.700000";
$c = $a - $b;
dd($c);   // 261.8  (as expected)

No visible precision problems.

  • I also have more complex code that deals with profit, base_price, offer_price, and user discount calculations — and so far, I haven’t encountered any floating-point issues or inaccuracies in the results.
$priceSource = (is_numeric($product->offer_price) && $product->offer_price != 0)
    ? $product->offer_price
    : $product->base_price;

$grossPrice = $priceSource + $product->profit; 
$price = $grossPrice - ($grossPrice * $userVipDiscount / 100);

My confusion

  • If the column is already DECIMAL(10,6), does Eloquent still need the cast?

  • Have PHP 8.2 and Laravel 12 improved this enough that the extra cast is redundant?

  • In what practical situations would the decimal:6 cast still make a difference?
    I’d like to understand whether the cast is just defensive habit or still necessary for real‑world money calculations.