[ 'name' => 'Admin', 'code' => 'admin', 'description' => 'Admin role', ], 'user' => [ 'name' => 'User', 'code' => 'user', 'description' => 'User role', ], ]; DB::transaction(static function() use ($roles) { $codes = collect($roles)->pluck('code'); Role::whereNotIn('code', $codes)->delete(); Role::upsert($roles, ['code'], ['name','description']); }); } }