If you're creating a user, profile, and assigning a role all at once, and something fails—your database should not be left in a broken state. Here's how Laravel helps with that: phpCopyEditDB::transaction(function () { $user = User::create([...])...