{"id":475,"date":"2021-12-25T22:01:00","date_gmt":"2021-12-25T22:01:00","guid":{"rendered":"https:\/\/rishikantsri.in\/blog\/?p=475"},"modified":"2023-10-20T10:10:27","modified_gmt":"2023-10-20T10:10:27","slug":"code-review-registration-of-a-user","status":"publish","type":"post","link":"https:\/\/rishikantsri.in\/blog\/code-review-registration-of-a-user\/","title":{"rendered":"Code Review: Registration of a user"},"content":{"rendered":"\n<p>The code, provided here, appears to be a Laravel controller method for user registration. This method is typically used to handle user registration requests, validate the incoming data, create a new user in the database, and return a response with user information and an access token upon successful registration.<\/p>\n\n\n\n<p>Here&#8217;s a breakdown of what this code does:<\/p>\n\n\n\n<ol>\n<li>It starts by validating the incoming data using Laravel&#8217;s built-in <code>Validator<\/code> class. It checks if the provided data meets the defined validation rules for fields like &#8216;name,&#8217; &#8217;email,&#8217; &#8216;phone,&#8217; and &#8216;password.&#8217;<\/li>\n\n\n\n<li>If the validation fails, it returns a JSON response with an error message containing validation errors.<\/li>\n\n\n\n<li>If the validation passes, it proceeds to create a new user in the database. It creates a user record in the &#8216;users&#8217; table with the provided user details, including a hashed password.<\/li>\n\n\n\n<li>It also creates a related customer details record in the &#8216;customer_details&#8217; table.<\/li>\n\n\n\n<li>It generates an access token for the newly registered user. <\/li>\n\n\n\n<li>After creating the user and customer details, it retrieves the user and customer details from the database to construct a response.<\/li>\n\n\n\n<li>Finally, it returns a JSON response with a success message, access token, and user information.<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:19.800000190734863px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"public function register(Request $request)\n{\n$validator = Validator::make($request-&gt;all(), [\n        'name' =&gt; 'required|string|max:255',\n        'email' =&gt; 'required|string|email|max:255|unique:users',\n        'phone' =&gt; 'required|string|max:9|unique:customer_details',\n        'password' =&gt; 'required|string|min:8',\n\n    ]);\n\n    if ($validator-&gt;fails()) {\n        $response = [\n            'code' =&gt; 200,\n            'Status' =&gt; false,\n            'Message' =&gt; $validator-&gt;errors()-&gt;first(),\n        ];\n        return response()-&gt;json($response, 200);\n    }\n\n    $user = User::create([\n        'name' =&gt; $request-&gt;name,\n        'email' =&gt; $request-&gt;email,\n        'password' =&gt; Hash::make($request-&gt;password),\n        'role_id' =&gt; 3,\n        'fcm_token' =&gt; $request-&gt;fcm_token,\n        'device_token' =&gt; $request-&gt;device_token,\n        'phone_number' =&gt; $phone_number,\n    ]);\n\n    $userDetails = CustomerDetails::create([\n        'user_id' =&gt; $user-&gt;id,\n        'dob' =&gt; $request-&gt;dob,\n        'age' =&gt; $request-&gt;age,\n        'gender' =&gt; $request-&gt;gender,\n        'phone' =&gt; $phone_number,\n        'image_path' =&gt; '\/upload\/users_images\/no_image.jpg',\n        'firstname' =&gt; $request-&gt;firstname,\n        'lastname' =&gt; $request-&gt;lastname,\n        'address_line1' =&gt; $request-&gt;address_line1,\n        'address_line2' =&gt; $request-&gt;address_line2,\n        'address_city' =&gt; $request-&gt;address_city,\n        'address_state' =&gt; $request-&gt;address_state,\n        'address_country' =&gt; $request-&gt;address_country,\n        'address_pincode' =&gt; $request-&gt;address_pincode,\n\n    ]);\n\n\n    $token = $user-&gt;createToken('auth_token')-&gt;plainTextToken;\n    $user = User::select('id', 'name', 'email')-&gt;where('id', $user-&gt;id)-&gt;first();\n    $userDetails = CustomerDetails::where('user_id', $user-&gt;id)-&gt;first();\n    $userdata = [];\n    $userdata['id'] = $user-&gt;id;\n    $userdata['name'] = $user-&gt;name;\n    $userdata['email'] = $user-&gt;email;\n    $userdata['firstname'] = $userDetails-&gt;firstname;\n    $userdata['lastname'] = $userDetails-&gt;lastname;\n    $userdata['gender'] = $userDetails-&gt;gender;\n    $userdata['phone'] = $userDetails-&gt;phone;\n    $userdata['age'] = $userDetails-&gt;age;\n    $userdata['address_line1'] = $userDetails-&gt;address_line1;\n    $userdata['address_line2'] = $userDetails-&gt;address_line2;\n    $userdata['address_city'] = $userDetails-&gt;address_city;\n    $userdata['address_state'] = $userDetails-&gt;address_state;\n    $userdata['address_country'] = $userDetails-&gt;address_country;\n    $userdata['address_pincode'] = $userDetails-&gt;address_pincode;\n    $userdata['image_path'] = $userDetails-&gt;image_path;\n    \n\n    return response()-&gt;json([\n        'code' =&gt; 200,\n        &quot;Status&quot; =&gt; true,\n        &quot;Message&quot; =&gt; 'Registered Sucessfully',\n        &quot;access_token&quot; =&gt; $token,\n        &quot;data&quot; =&gt; $userdata,\n    ], 200);\n}\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">public<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #B392F0\"> register(<\/span><span style=\"color: #79B8FF\">Request<\/span><span style=\"color: #B392F0\"> $request)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">$validator <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">Validator<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">make<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">$request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">all<\/span><span style=\"color: #BBBBBB\">(),<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;name&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required|string|max:255&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;email&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required|string|email|max:255|unique:users&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;phone&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required|string|max:9|unique:customer_details&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;password&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required|string|min:8&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #B392F0\"> ($validator<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">fails<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #B392F0\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        $response <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;code&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">200<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;Status&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;Message&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $validator<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">errors<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">first<\/span><span style=\"color: #BBBBBB\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        ];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #B392F0\"> response<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">json<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">$response<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">200<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $user <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">User<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">create<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">[<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;name&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">name<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;email&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">email<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;password&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">Hash<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">make<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">$request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">password<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;role_id&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">3<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;fcm_token&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">fcm_token<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;device_token&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">device_token<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;phone_number&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $phone_number<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userDetails <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">CustomerDetails<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">create<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">[<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;user_id&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">id<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;dob&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">dob<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;age&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">age<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;gender&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">gender<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;phone&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $phone_number<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;image_path&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;\/upload\/users_images\/no_image.jpg&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;firstname&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">firstname<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;lastname&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">lastname<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;address_line1&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_line1<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;address_line2&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_line2<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;address_city&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_city<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;address_state&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_state<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;address_country&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_country<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;address_pincode&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_pincode<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $token <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">createToken<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;auth_token&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">plainTextToken;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $user <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">User<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">select<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;id&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;name&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;email&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">where<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;id&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">id<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">first<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userDetails <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">CustomerDetails<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">where<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;user_id&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">id<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">first<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> [];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;id&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">id;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;name&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">name;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;email&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">email;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;firstname&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">firstname;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;lastname&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">lastname;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;gender&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">gender;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;phone&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">phone;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;age&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">age;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;address_line1&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_line1;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;address_line2&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_line2;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;address_city&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_city;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;address_state&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_state;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;address_country&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_country;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;address_pincode&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_pincode;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    $userdata[<\/span><span style=\"color: #FFAB70\">&#39;image_path&#39;<\/span><span style=\"color: #B392F0\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $userDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">image_path;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #B392F0\"> response<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">json<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">[<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&#39;code&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">200<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&quot;Status&quot;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&quot;Message&quot;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;Registered Sucessfully&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&quot;access_token&quot;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $token<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #FFAB70\">&quot;data&quot;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $userdata<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    ]<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">200<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-b-392-f-0-color has-text-color has-1-125-rem-font-size\">It&#8217;s a good practice to use try-catch blocks to handle exceptions in the code. Here&#8217;s the code refactored with try-catch blocks to handle exceptions:<br><br>Certainly, it&#8217;s a good practice to use try-catch blocks to handle exceptions in your code. Here&#8217;s the code refactored with try-catch blocks to handle exceptions:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:19.80000114440918px;line-height:1.625rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1f1f1f\"><span style=\"background:#a37ced;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1f1f1f\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"public function register(Request $request)\n{\n    try {\n        $validatedData = $request-&gt;validate([\n            'name' =&gt; 'required|string|max:255',\n            'email' =&gt; 'required|string|email|max:255|unique:users',\n            'phone' =&gt; 'required|string|max:9|unique:customer_details',\n            'password' =&gt; 'required|string|min:8',\n            'dob' =&gt; 'required',\n            'age' =&gt; 'required|integer',\n            'gender' =&gt; 'required|in:Male,Female,Other',\n        ]);\n\n        $user = null;\n\n        \/\/ Attempt to create the user within a transaction\n        DB::beginTransaction();\n\n        try {\n            $user = User::create([\n                'name' =&gt; $validatedData['name'],\n                'email' =&gt; $validatedData['email'],\n                'password' =&gt; Hash::make($validatedData['password']),\n                'role_id' =&gt; 3,\n                'fcm_token' =&gt; $request-&gt;input('fcm_token'),\n                'device_token' =&gt; $request-&gt;input('device_token'),\n                'phone_number' =&gt; $validatedData['phone'],\n            ]);\n\n            $user-&gt;customerDetails()-&gt;create([\n                'dob' =&gt; $validatedData['dob'],\n                'age' =&gt; $validatedData['age'],\n                'gender' =&gt; $validatedData['gender'],\n                'phone' =&gt; $validatedData['phone'],\n                'image_path' =&gt; '\/upload\/users_images\/no_image.jpg',\n                'firstname' =&gt; $request-&gt;input('firstname'),\n                'lastname' =&gt; $request-&gt;input('lastname'),\n                'address_line1' =&gt; $request-&gt;input('address_line1'),\n                'address_line2' =&gt; $request-&gt;input('address_line2'),\n                'address_city' =&gt; $request-&gt;input('address_city'),\n                'address_state' =&gt; $request-&gt;input('address_state'),\n                'address_country' =&gt; $request-&gt;input('address_country'),\n                'address_pincode' =&gt; $request-&gt;input('address_pincode'),\n            ]);\n\n            DB::commit();\n        } catch (Exception $e) {\n            DB::rollBack();\n            throw $e; \/\/ Re-throw the exception\n        }\n\n        $token = $user-&gt;createToken('auth_token')-&gt;plainTextToken;\n        $user-&gt;load('customerDetails');\n\n        return response()-&gt;json([\n            'code' =&gt; 200,\n            'Status' =&gt; true,\n            'Message' =&gt; 'Registered Successfully',\n            'access_token' =&gt; $token,\n            'data' =&gt; [\n                'id' =&gt; $user-&gt;id,\n                'name' =&gt; $user-&gt;name,\n                'email' =&gt; $user-&gt;email,\n                'firstname' =&gt; $user-&gt;customerDetails-&gt;firstname,\n                'lastname' =&gt; $user-&gt;customerDetails-&gt;lastname,\n                'gender' =&gt; $user-&gt;customerDetails-&gt;gender,\n                'phone' =&gt; $user-&gt;customerDetails-&gt;phone,\n                'age' =&gt; $user-&gt;customerDetails-&gt;age,\n                'address_line1' =&gt; $user-&gt;customerDetails-&gt;address_line1,\n                'address_line2' =&gt; $user-&gt;customerDetails-&gt;address_line2,\n                'address_city' =&gt; $user-&gt;customerDetails-&gt;address_city,\n                'address_state' =&gt; $user-&gt;customerDetails-&gt;address_state,\n                'address_country' =&gt; $user-&gt;customerDetails-&gt;address_country,\n                'address_pincode' =&gt; $user-&gt;customerDetails-&gt;address_pincode,\n                'image_path' =&gt; $user-&gt;customerDetails-&gt;image_path,\n                'productsincart' =&gt; $user-&gt;cartProducts()-&gt;count(),\n            ],\n        ], 200);\n    } catch (ValidationException $e) {\n        \/\/ Handle validation exception\n        $response = [\n            'code' =&gt; 400,\n            'Status' =&gt; false,\n            'Message' =&gt; $e-&gt;validator-&gt;getMessageBag()-&gt;first(),\n        ];\n        return response()-&gt;json($response, 400);\n    } catch (Exception $e) {\n        \/\/ Handle other exceptions\n        $response = [\n            'code' =&gt; 500,\n            'Status' =&gt; false,\n            'Message' =&gt; 'An error occurred while processing the request.',\n        ];\n        return response()-&gt;json($response, 500);\n    }\n}\n\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">public<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">function<\/span><span style=\"color: #B392F0\"> register(<\/span><span style=\"color: #79B8FF\">Request<\/span><span style=\"color: #B392F0\"> $request)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    <\/span><span style=\"color: #F97583\">try<\/span><span style=\"color: #B392F0\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        $validatedData <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">validate<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">[<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;name&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required|string|max:255&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;email&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required|string|email|max:255|unique:users&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;phone&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required|string|max:9|unique:customer_details&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;password&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required|string|min:8&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;dob&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;age&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required|integer&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;gender&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;required|in:Male,Female,Other&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        ]<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        $user <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">null<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #6B737C\">\/\/ Attempt to create the user within a transaction<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #79B8FF\">DB<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">beginTransaction<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">try<\/span><span style=\"color: #B392F0\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            $user <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">User<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">create<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">[<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;name&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $validatedData[<\/span><span style=\"color: #FFAB70\">&#39;name&#39;<\/span><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;email&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $validatedData[<\/span><span style=\"color: #FFAB70\">&#39;email&#39;<\/span><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;password&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">Hash<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">make<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">$validatedData[<\/span><span style=\"color: #FFAB70\">&#39;password&#39;<\/span><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;role_id&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">3<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;fcm_token&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">input<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;fcm_token&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;device_token&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">input<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;device_token&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;phone_number&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $validatedData[<\/span><span style=\"color: #FFAB70\">&#39;phone&#39;<\/span><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            ]<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">create<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">[<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;dob&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $validatedData[<\/span><span style=\"color: #FFAB70\">&#39;dob&#39;<\/span><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;age&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $validatedData[<\/span><span style=\"color: #FFAB70\">&#39;age&#39;<\/span><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;gender&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $validatedData[<\/span><span style=\"color: #FFAB70\">&#39;gender&#39;<\/span><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;phone&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $validatedData[<\/span><span style=\"color: #FFAB70\">&#39;phone&#39;<\/span><span style=\"color: #B392F0\">]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;image_path&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;\/upload\/users_images\/no_image.jpg&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;firstname&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">input<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;firstname&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;lastname&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">input<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;lastname&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_line1&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">input<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;address_line1&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_line2&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">input<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;address_line2&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_city&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">input<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;address_city&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_state&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">input<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;address_state&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_country&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">input<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;address_country&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_pincode&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $request<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">input<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;address_pincode&#39;<\/span><span style=\"color: #BBBBBB\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            ]<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #79B8FF\">DB<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">commit<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        } <\/span><span style=\"color: #F97583\">catch<\/span><span style=\"color: #B392F0\"> (<\/span><span style=\"color: #79B8FF\">Exception<\/span><span style=\"color: #B392F0\"> $e) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #79B8FF\">DB<\/span><span style=\"color: #F97583\">::<\/span><span style=\"color: #B392F0\">rollBack<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #F97583\">throw<\/span><span style=\"color: #B392F0\"> $e; <\/span><span style=\"color: #6B737C\">\/\/ Re-throw the exception<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        $token <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">createToken<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;auth_token&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">plainTextToken;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">load<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #FFAB70\">&#39;customerDetails&#39;<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #B392F0\"> response<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">json<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">[<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;code&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">200<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;Status&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;Message&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;Registered Successfully&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;access_token&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $token<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;data&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;id&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">id<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;name&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">name<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;email&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">email<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;firstname&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">firstname<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;lastname&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">lastname<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;gender&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">gender<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;phone&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">phone<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;age&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">age<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_line1&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_line1<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_line2&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_line2<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_city&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_city<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_state&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_state<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_country&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_country<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;address_pincode&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">address_pincode<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;image_path&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">customerDetails<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">image_path<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">                <\/span><span style=\"color: #FFAB70\">&#39;productsincart&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $user<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">cartProducts<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">count<\/span><span style=\"color: #BBBBBB\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            ]<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        ]<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">200<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    } <\/span><span style=\"color: #F97583\">catch<\/span><span style=\"color: #B392F0\"> (<\/span><span style=\"color: #79B8FF\">ValidationException<\/span><span style=\"color: #B392F0\"> $e) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #6B737C\">\/\/ Handle validation exception<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        $response <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;code&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">400<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;Status&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;Message&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> $e<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">validator<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">getMessageBag<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">first<\/span><span style=\"color: #BBBBBB\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        ];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #B392F0\"> response<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">json<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">$response<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">400<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    } <\/span><span style=\"color: #F97583\">catch<\/span><span style=\"color: #B392F0\"> (<\/span><span style=\"color: #79B8FF\">Exception<\/span><span style=\"color: #B392F0\"> $e) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #6B737C\">\/\/ Handle other exceptions<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        $response <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;code&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">500<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;Status&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">            <\/span><span style=\"color: #FFAB70\">&#39;Message&#39;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">=&gt;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&#39;An error occurred while processing the request.&#39;<\/span><span style=\"color: #BBBBBB\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        ];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #B392F0\"> response<\/span><span style=\"color: #BBBBBB\">()<\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #B392F0\">json<\/span><span style=\"color: #BBBBBB\">(<\/span><span style=\"color: #B392F0\">$response<\/span><span style=\"color: #BBBBBB\">,<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">500<\/span><span style=\"color: #BBBBBB\">)<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In this refactored code: &#8211; We wrap the entire code in a `try` block to handle exceptions. &#8211; We use a nested `try-catch` block to handle database-related exceptions and roll back the transaction if an exception occurs during user and customer detail creation. We re-throw the exception after rolling back to ensure it&#8217;s caught by the outer `catch` block. &#8211; We handle validation exceptions using `ValidationException` and other exceptions using a generic `Exception` catch block. &#8211; We provide appropriate HTTP response codes and error messages based on the type of exception encountered.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The code, provided here, appears to be a Laravel controller method for user registration. This method is typically used to handle user registration requests, validate the incoming data, create a new user in the database, and return a response with user information and an access token upon successful registration. Here&#8217;s a breakdown of what this [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[59,11],"tags":[60,3,4],"_links":{"self":[{"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/posts\/475"}],"collection":[{"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/comments?post=475"}],"version-history":[{"count":3,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/posts\/475\/revisions"}],"predecessor-version":[{"id":478,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/posts\/475\/revisions\/478"}],"wp:attachment":[{"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/media?parent=475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/categories?post=475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rishikantsri.in\/blog\/wp-json\/wp\/v2\/tags?post=475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}