Flysystem 3 returns false less and throws more

The filesystem abstraction moved from returning false on failure to throwing, and Laravel 9 wraps that in a setting rather than a change.

// config/filesystems.php
'disks' => [
    's3' => [
        'driver' => 's3',
        'throw'  => true,      // opt in to the new behaviour
    ],
],

// with throw => false (the default), a failed write
// returns false and the reason is gone.
// with throw => true, an exception with a message.

Defaulting to the old behaviour is a kindness that also means most applications upgraded without gaining anything. Turning it on is a small change with a real consequence: every write that was silently failing starts throwing, which is the point and will surface something. Doing it one disk at a time, starting with the one nobody writes to often, is how it gets adopted rather than reverted.