@@ -372,6 +372,17 @@ public function inviteUser(InviteUserRequest $request)
372372
373373 $ user = User::create ($ data );
374374
375+ // Set user type
376+ $ user ->setUserType ('user ' );
377+
378+ // Assign to user
379+ $ user ->assignCompany ($ company , $ request ->input ('user.role_uuid ' ));
380+
381+ // Assign role if set
382+ if ($ request ->filled ('user.role_uuid ' )) {
383+ $ user ->assignSingleRole ($ request ->input ('user.role_uuid ' ));
384+ }
385+
375386 $ invitation = Invite::create ([
376387 'company_uuid ' => $ company ->uuid ,
377388 'created_by_uuid ' => session ('user ' ),
@@ -381,6 +392,7 @@ public function inviteUser(InviteUserRequest $request)
381392 'recipients ' => [$ user ->email ],
382393 'reason ' => 'join_company ' ,
383394 'meta ' => array_filter (['role_uuid ' => $ request ->input ('user.role_uuid ' ) ?? $ request ->input ('user.role ' )]),
395+ 'expires_at ' => now ()->addHours (48 ),
384396 ]);
385397
386398 $ user ->notify (new UserInvited ($ invitation ));
@@ -397,10 +409,8 @@ public function inviteUser(InviteUserRequest $request)
397409 * (the dedicated invite endpoint). Keeping the logic in one place ensures
398410 * both paths behave identically.
399411 *
400- * @param User $user The existing user to invite.
401- * @param Request $request The originating HTTP request.
402- *
403- * @return \Illuminate\Http\JsonResponse
412+ * @param User $user the existing user to invite
413+ * @param Request $request the originating HTTP request
404414 */
405415 private function inviteExistingUser (User $ user , Request $ request ): \Illuminate \Http \JsonResponse
406416 {
@@ -424,6 +434,7 @@ private function inviteExistingUser(User $user, Request $request): \Illuminate\H
424434 'recipients ' => [$ user ->email ],
425435 'reason ' => 'join_company ' ,
426436 'meta ' => array_filter (['role_uuid ' => $ request ->input ('user.role_uuid ' ) ?? $ request ->input ('user.role ' )]),
437+ 'expires_at ' => now ()->addHours (48 ),
427438 ]);
428439
429440 $ user ->notify (new UserInvited ($ invitation ));
@@ -456,6 +467,7 @@ public function resendInvitation(ResendUserInvite $request)
456467 'protocol ' => 'email ' ,
457468 'recipients ' => [$ user ->email ],
458469 'reason ' => 'join_company ' ,
470+ 'expires_at ' => now ()->addHours (48 ),
459471 ]);
460472
461473 // notify user
@@ -520,6 +532,9 @@ public function acceptCompanyInvite(AcceptCompanyInvite $request)
520532 }
521533 }
522534
535+ // Delete the invite
536+ $ invite ->delete ();
537+
523538 // Switch the user's active company to the one they just joined.
524539 // This ensures that subsequent calls to /users/me resolve the
525540 // companyUser relationship (and therefore role/policies) against
0 commit comments