validated(); try { DB::transaction(function () use ($data) { switch ($data['role']) { case UserTypes::Broker->value: $data['status'] = UserStatus::Pending->value; // Create Broker first, then link the user $broker = Broker::create(); $broker->user()->create($data); break; case UserTypes::User->value: $data['status'] = UserStatus::Active->value; $customer = Customer::create(); $customer->user()->create($data); break; } }); 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.'); } } }