validated(); try { DB::transaction(function () use ($data) { if ($data['role'] === UserTypes::Broker->value) { $data['status'] = UserStatus::Pending->value; // Create Broker first, then the User linked to it $broker = Broker::create(); $broker->user()->create($data); } else { $data['status'] = UserStatus::Active->value; User::create($data); } }); return to_route('login.create') ->with('userRegistered', 'User registered successfully.'); } catch (\Throwable $e) { Log::error('Registration Failed: '.$e->getMessage()); return back() ->withInput() ->with('error', 'Something went wrong during registration.'); } } }