[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-laravel-fortify-development":3,"mdc--fb1l2r-key":34,"related-repo-laravel-fortify-development":1148,"related-org-laravel-fortify-development":1157},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"fortify-development","implement authentication with Laravel Fortify","ACTIVATE when the user works on authentication in Laravel. This includes login, registration, password reset, email verification, two-factor authentication (2FA\u002FTOTP\u002FQR codes\u002Frecovery codes), passkeys, profile updates, password confirmation, or any auth-related routes and controllers. Activate when the user mentions Fortify, auth, authentication, login, register, signup, forgot password, verify email, 2FA, passkeys, WebAuthn, or references app\u002FActions\u002FFortify\u002F, CreateNewUser, UpdateUserProfileInformation, FortifyServiceProvider, config\u002Ffortify.php, or auth guards. Fortify is the frontend-agnostic authentication backend for Laravel that registers all auth routes and controllers. Also activate when building SPA or headless authentication, customizing login redirects, overriding response contracts like LoginResponse, or configuring login throttling. Do NOT activate for Laravel Passport (OAuth2 API tokens), Socialite (OAuth social login), or non-auth Laravel features.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"laravel","Laravel","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Flaravel.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"PHP","php","tag",{"name":17,"slug":18,"type":15},"Auth","auth",{"name":20,"slug":21,"type":15},"2FA","2fa",{"name":9,"slug":8,"type":15},1746,"https:\u002F\u002Fgithub.com\u002Flaravel\u002Ffortify","2026-07-13T06:22:28.612049","MIT",329,[18,8],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[18,8],"Backend controllers and scaffolding for Laravel authentication.","https:\u002F\u002Fgithub.com\u002Flaravel\u002Ffortify\u002Ftree\u002FHEAD\u002Fresources\u002Fboost\u002Fskills\u002Ffortify-development","---\nname: fortify-development\ndescription: 'ACTIVATE when the user works on authentication in Laravel. This includes login, registration, password reset, email verification, two-factor authentication (2FA\u002FTOTP\u002FQR codes\u002Frecovery codes), passkeys, profile updates, password confirmation, or any auth-related routes and controllers. Activate when the user mentions Fortify, auth, authentication, login, register, signup, forgot password, verify email, 2FA, passkeys, WebAuthn, or references app\u002FActions\u002FFortify\u002F, CreateNewUser, UpdateUserProfileInformation, FortifyServiceProvider, config\u002Ffortify.php, or auth guards. Fortify is the frontend-agnostic authentication backend for Laravel that registers all auth routes and controllers. Also activate when building SPA or headless authentication, customizing login redirects, overriding response contracts like LoginResponse, or configuring login throttling. Do NOT activate for Laravel Passport (OAuth2 API tokens), Socialite (OAuth social login), or non-auth Laravel features.'\nlicense: MIT\nmetadata:\n  author: laravel\n---\n\n# Laravel Fortify Development\n\nFortify is a headless authentication backend that provides authentication routes and controllers for Laravel applications.\n\n## Documentation\n\nUse `search-docs` for detailed Laravel Fortify patterns and documentation.\n\n## Usage\n\n- **Routes**: Use `list-routes` with `only_vendor: true` and `action: \"Fortify\"` to see all registered endpoints\n- **Actions**: Check `app\u002FActions\u002FFortify\u002F` for customizable business logic (user creation, password validation, etc.)\n- **Config**: See `config\u002Ffortify.php` for all options including features, guards, rate limiters, and username field\n- **Contracts**: Look in `Laravel\\Fortify\\Contracts\\` for overridable response classes (`LoginResponse`, `LogoutResponse`, etc.)\n- **Views**: All view callbacks are set in `FortifyServiceProvider::boot()` using `Fortify::loginView()`, `Fortify::registerView()`, etc.\n\n## Available Features\n\nEnable in `config\u002Ffortify.php` features array:\n\n- `Features::registration()` - User registration\n- `Features::resetPasswords()` - Password reset via email\n- `Features::emailVerification()` - Requires User to implement `MustVerifyEmail`\n- `Features::updateProfileInformation()` - Profile updates\n- `Features::updatePasswords()` - Password changes\n- `Features::twoFactorAuthentication()` - 2FA with QR codes and recovery codes\n- `Features::passkeys()` - Passwordless authentication with WebAuthn passkeys\n\n> Use `search-docs` for feature configuration options and customization patterns.\n\n## Setup Workflows\n\n### Two-Factor Authentication Setup\n\n```\n- [ ] Add TwoFactorAuthenticatable trait to User model\n- [ ] Enable feature in config\u002Ffortify.php\n- [ ] If the `*_add_two_factor_columns_to_users_table.php` migration is missing, publish via `php artisan vendor:publish --tag=fortify-migrations` and migrate\n- [ ] Set up view callbacks in FortifyServiceProvider\n- [ ] Create 2FA management UI\n- [ ] Test QR code and recovery codes\n```\n\n> Use `search-docs` for TOTP implementation and recovery code handling patterns.\n\n### Passkeys Setup\n\n```\n- [ ] Add PasskeyAuthenticatable trait to User model and implement PasskeyUser\n- [ ] Enable passkeys feature in config\u002Ffortify.php\n- [ ] If the passkeys table migration is missing, publish via `php artisan vendor:publish --tag=fortify-migrations` and migrate\n- [ ] Configure passkeys relying_party_id, allowed_origins, user_handle_secret, and timeout if defaults are not suitable\n- [ ] Build UI with @laravel\u002Fpasskeys for registration, login, confirmation, and deletion\n```\n\n> Use `search-docs` for passkey configuration options. For `@laravel\u002Fpasskeys` frontend usage, refer to the package's README on npm.\n\n### Email Verification Setup\n\n```\n- [ ] Enable emailVerification feature in config\n- [ ] Implement MustVerifyEmail interface on User model\n- [ ] Set up verifyEmailView callback\n- [ ] Add verified middleware to protected routes\n- [ ] Test verification email flow\n```\n\n> Use `search-docs` for MustVerifyEmail implementation patterns.\n\n### Password Reset Setup\n\n```\n- [ ] Enable resetPasswords feature in config\n- [ ] Set up requestPasswordResetLinkView callback\n- [ ] Set up resetPasswordView callback\n- [ ] Define password.reset named route (if views disabled)\n- [ ] Test reset email and link flow\n```\n\n> Use `search-docs` for custom password reset flow patterns.\n\n### SPA Authentication Setup\n\n```\n- [ ] Set 'views' => false in config\u002Ffortify.php\n- [ ] Install and configure Laravel Sanctum for session-based SPA authentication\n- [ ] Use the 'web' guard in config\u002Ffortify.php (required for session-based authentication)\n- [ ] Set up CSRF token handling\n- [ ] Test XHR authentication flows\n```\n\n> Use `search-docs` for integration and SPA authentication patterns.\n\n#### Two-Factor Authentication in SPA Mode\n\nWhen `views` is set to `false`, Fortify returns JSON responses instead of redirects.\n\nIf a user attempts to log in and two-factor authentication is enabled, the login request will return a JSON response indicating that a two-factor challenge is required:\n\n```json\n{\n    \"two_factor\": true\n}\n```\n\n## Best Practices\n\n### Custom Authentication Logic\n\nOverride authentication behavior using `Fortify::authenticateUsing()` for custom user retrieval or `Fortify::authenticateThrough()` to customize the authentication pipeline. Override response contracts in `AppServiceProvider` for custom redirects.\n\n### Registration Customization\n\nModify `app\u002FActions\u002FFortify\u002FCreateNewUser.php` to customize user creation logic, validation rules, and additional fields.\n\n### Rate Limiting\n\nConfigure via `fortify.limiters.login` in config. Default configuration throttles by username + IP combination.\n\n## Key Endpoints\n\n| Feature                | Method   | Endpoint                                    |\n|------------------------|----------|---------------------------------------------|\n| Login                  | POST     | `\u002Flogin`                                    |\n| Logout                 | POST     | `\u002Flogout`                                   |\n| Register               | POST     | `\u002Fregister`                                 |\n| Password Reset Request | POST     | `\u002Fforgot-password`                          |\n| Password Reset         | POST     | `\u002Freset-password`                           |\n| Email Verify Notice    | GET      | `\u002Femail\u002Fverify`                             |\n| Resend Verification    | POST     | `\u002Femail\u002Fverification-notification`          |\n| Password Confirm       | POST     | `\u002Fuser\u002Fconfirm-password`                    |\n| Enable 2FA             | POST     | `\u002Fuser\u002Ftwo-factor-authentication`           |\n| Confirm 2FA            | POST     | `\u002Fuser\u002Fconfirmed-two-factor-authentication` |\n| 2FA Challenge          | POST     | `\u002Ftwo-factor-challenge`                     |\n| Get QR Code            | GET      | `\u002Fuser\u002Ftwo-factor-qr-code`                  |\n| Recovery Codes         | GET\u002FPOST | `\u002Fuser\u002Ftwo-factor-recovery-codes`           |\n| Passkey Login Options  | GET      | `\u002Fpasskeys\u002Flogin\u002Foptions`                   |\n| Passkey Login          | POST     | `\u002Fpasskeys\u002Flogin`                           |\n| Passkey Confirm Options| GET      | `\u002Fpasskeys\u002Fconfirm\u002Foptions`                 |\n| Passkey Confirm        | POST     | `\u002Fpasskeys\u002Fconfirm`                         |\n| Passkey Options        | GET      | `\u002Fuser\u002Fpasskeys\u002Foptions`                    |\n| Register Passkey       | POST     | `\u002Fuser\u002Fpasskeys`                            |\n| Delete Passkey         | DELETE   | `\u002Fuser\u002Fpasskeys\u002F{passkey}`                  |\n",{"data":35,"body":37},{"name":4,"description":6,"license":26,"metadata":36},{"author":8},{"type":38,"children":39},"root",[40,49,55,62,76,82,225,231,243,329,344,350,357,369,383,389,398,420,426,435,449,455,464,478,484,493,507,514,535,540,600,606,612,641,647,660,666,679,685,1142],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"laravel-fortify-development",[46],{"type":47,"value":48},"text","Laravel Fortify Development",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53],{"type":47,"value":54},"Fortify is a headless authentication backend that provides authentication routes and controllers for Laravel applications.",{"type":41,"tag":56,"props":57,"children":59},"h2",{"id":58},"documentation",[60],{"type":47,"value":61},"Documentation",{"type":41,"tag":50,"props":63,"children":64},{},[65,67,74],{"type":47,"value":66},"Use ",{"type":41,"tag":68,"props":69,"children":71},"code",{"className":70},[],[72],{"type":47,"value":73},"search-docs",{"type":47,"value":75}," for detailed Laravel Fortify patterns and documentation.",{"type":41,"tag":56,"props":77,"children":79},{"id":78},"usage",[80],{"type":47,"value":81},"Usage",{"type":41,"tag":83,"props":84,"children":85},"ul",{},[86,122,140,158,192],{"type":41,"tag":87,"props":88,"children":89},"li",{},[90,96,98,104,106,112,114,120],{"type":41,"tag":91,"props":92,"children":93},"strong",{},[94],{"type":47,"value":95},"Routes",{"type":47,"value":97},": Use ",{"type":41,"tag":68,"props":99,"children":101},{"className":100},[],[102],{"type":47,"value":103},"list-routes",{"type":47,"value":105}," with ",{"type":41,"tag":68,"props":107,"children":109},{"className":108},[],[110],{"type":47,"value":111},"only_vendor: true",{"type":47,"value":113}," and ",{"type":41,"tag":68,"props":115,"children":117},{"className":116},[],[118],{"type":47,"value":119},"action: \"Fortify\"",{"type":47,"value":121}," to see all registered endpoints",{"type":41,"tag":87,"props":123,"children":124},{},[125,130,132,138],{"type":41,"tag":91,"props":126,"children":127},{},[128],{"type":47,"value":129},"Actions",{"type":47,"value":131},": Check ",{"type":41,"tag":68,"props":133,"children":135},{"className":134},[],[136],{"type":47,"value":137},"app\u002FActions\u002FFortify\u002F",{"type":47,"value":139}," for customizable business logic (user creation, password validation, etc.)",{"type":41,"tag":87,"props":141,"children":142},{},[143,148,150,156],{"type":41,"tag":91,"props":144,"children":145},{},[146],{"type":47,"value":147},"Config",{"type":47,"value":149},": See ",{"type":41,"tag":68,"props":151,"children":153},{"className":152},[],[154],{"type":47,"value":155},"config\u002Ffortify.php",{"type":47,"value":157}," for all options including features, guards, rate limiters, and username field",{"type":41,"tag":87,"props":159,"children":160},{},[161,166,168,174,176,182,184,190],{"type":41,"tag":91,"props":162,"children":163},{},[164],{"type":47,"value":165},"Contracts",{"type":47,"value":167},": Look in ",{"type":41,"tag":68,"props":169,"children":171},{"className":170},[],[172],{"type":47,"value":173},"Laravel\\Fortify\\Contracts\\",{"type":47,"value":175}," for overridable response classes (",{"type":41,"tag":68,"props":177,"children":179},{"className":178},[],[180],{"type":47,"value":181},"LoginResponse",{"type":47,"value":183},", ",{"type":41,"tag":68,"props":185,"children":187},{"className":186},[],[188],{"type":47,"value":189},"LogoutResponse",{"type":47,"value":191},", etc.)",{"type":41,"tag":87,"props":193,"children":194},{},[195,200,202,208,210,216,217,223],{"type":41,"tag":91,"props":196,"children":197},{},[198],{"type":47,"value":199},"Views",{"type":47,"value":201},": All view callbacks are set in ",{"type":41,"tag":68,"props":203,"children":205},{"className":204},[],[206],{"type":47,"value":207},"FortifyServiceProvider::boot()",{"type":47,"value":209}," using ",{"type":41,"tag":68,"props":211,"children":213},{"className":212},[],[214],{"type":47,"value":215},"Fortify::loginView()",{"type":47,"value":183},{"type":41,"tag":68,"props":218,"children":220},{"className":219},[],[221],{"type":47,"value":222},"Fortify::registerView()",{"type":47,"value":224},", etc.",{"type":41,"tag":56,"props":226,"children":228},{"id":227},"available-features",[229],{"type":47,"value":230},"Available Features",{"type":41,"tag":50,"props":232,"children":233},{},[234,236,241],{"type":47,"value":235},"Enable in ",{"type":41,"tag":68,"props":237,"children":239},{"className":238},[],[240],{"type":47,"value":155},{"type":47,"value":242}," features array:",{"type":41,"tag":83,"props":244,"children":245},{},[246,257,268,285,296,307,318],{"type":41,"tag":87,"props":247,"children":248},{},[249,255],{"type":41,"tag":68,"props":250,"children":252},{"className":251},[],[253],{"type":47,"value":254},"Features::registration()",{"type":47,"value":256}," - User registration",{"type":41,"tag":87,"props":258,"children":259},{},[260,266],{"type":41,"tag":68,"props":261,"children":263},{"className":262},[],[264],{"type":47,"value":265},"Features::resetPasswords()",{"type":47,"value":267}," - Password reset via email",{"type":41,"tag":87,"props":269,"children":270},{},[271,277,279],{"type":41,"tag":68,"props":272,"children":274},{"className":273},[],[275],{"type":47,"value":276},"Features::emailVerification()",{"type":47,"value":278}," - Requires User to implement ",{"type":41,"tag":68,"props":280,"children":282},{"className":281},[],[283],{"type":47,"value":284},"MustVerifyEmail",{"type":41,"tag":87,"props":286,"children":287},{},[288,294],{"type":41,"tag":68,"props":289,"children":291},{"className":290},[],[292],{"type":47,"value":293},"Features::updateProfileInformation()",{"type":47,"value":295}," - Profile updates",{"type":41,"tag":87,"props":297,"children":298},{},[299,305],{"type":41,"tag":68,"props":300,"children":302},{"className":301},[],[303],{"type":47,"value":304},"Features::updatePasswords()",{"type":47,"value":306}," - Password changes",{"type":41,"tag":87,"props":308,"children":309},{},[310,316],{"type":41,"tag":68,"props":311,"children":313},{"className":312},[],[314],{"type":47,"value":315},"Features::twoFactorAuthentication()",{"type":47,"value":317}," - 2FA with QR codes and recovery codes",{"type":41,"tag":87,"props":319,"children":320},{},[321,327],{"type":41,"tag":68,"props":322,"children":324},{"className":323},[],[325],{"type":47,"value":326},"Features::passkeys()",{"type":47,"value":328}," - Passwordless authentication with WebAuthn passkeys",{"type":41,"tag":330,"props":331,"children":332},"blockquote",{},[333],{"type":41,"tag":50,"props":334,"children":335},{},[336,337,342],{"type":47,"value":66},{"type":41,"tag":68,"props":338,"children":340},{"className":339},[],[341],{"type":47,"value":73},{"type":47,"value":343}," for feature configuration options and customization patterns.",{"type":41,"tag":56,"props":345,"children":347},{"id":346},"setup-workflows",[348],{"type":47,"value":349},"Setup Workflows",{"type":41,"tag":351,"props":352,"children":354},"h3",{"id":353},"two-factor-authentication-setup",[355],{"type":47,"value":356},"Two-Factor Authentication Setup",{"type":41,"tag":358,"props":359,"children":363},"pre",{"className":360,"code":362,"language":47},[361],"language-text","- [ ] Add TwoFactorAuthenticatable trait to User model\n- [ ] Enable feature in config\u002Ffortify.php\n- [ ] If the `*_add_two_factor_columns_to_users_table.php` migration is missing, publish via `php artisan vendor:publish --tag=fortify-migrations` and migrate\n- [ ] Set up view callbacks in FortifyServiceProvider\n- [ ] Create 2FA management UI\n- [ ] Test QR code and recovery codes\n",[364],{"type":41,"tag":68,"props":365,"children":367},{"__ignoreMap":366},"",[368],{"type":47,"value":362},{"type":41,"tag":330,"props":370,"children":371},{},[372],{"type":41,"tag":50,"props":373,"children":374},{},[375,376,381],{"type":47,"value":66},{"type":41,"tag":68,"props":377,"children":379},{"className":378},[],[380],{"type":47,"value":73},{"type":47,"value":382}," for TOTP implementation and recovery code handling patterns.",{"type":41,"tag":351,"props":384,"children":386},{"id":385},"passkeys-setup",[387],{"type":47,"value":388},"Passkeys Setup",{"type":41,"tag":358,"props":390,"children":393},{"className":391,"code":392,"language":47},[361],"- [ ] Add PasskeyAuthenticatable trait to User model and implement PasskeyUser\n- [ ] Enable passkeys feature in config\u002Ffortify.php\n- [ ] If the passkeys table migration is missing, publish via `php artisan vendor:publish --tag=fortify-migrations` and migrate\n- [ ] Configure passkeys relying_party_id, allowed_origins, user_handle_secret, and timeout if defaults are not suitable\n- [ ] Build UI with @laravel\u002Fpasskeys for registration, login, confirmation, and deletion\n",[394],{"type":41,"tag":68,"props":395,"children":396},{"__ignoreMap":366},[397],{"type":47,"value":392},{"type":41,"tag":330,"props":399,"children":400},{},[401],{"type":41,"tag":50,"props":402,"children":403},{},[404,405,410,412,418],{"type":47,"value":66},{"type":41,"tag":68,"props":406,"children":408},{"className":407},[],[409],{"type":47,"value":73},{"type":47,"value":411}," for passkey configuration options. For ",{"type":41,"tag":68,"props":413,"children":415},{"className":414},[],[416],{"type":47,"value":417},"@laravel\u002Fpasskeys",{"type":47,"value":419}," frontend usage, refer to the package's README on npm.",{"type":41,"tag":351,"props":421,"children":423},{"id":422},"email-verification-setup",[424],{"type":47,"value":425},"Email Verification Setup",{"type":41,"tag":358,"props":427,"children":430},{"className":428,"code":429,"language":47},[361],"- [ ] Enable emailVerification feature in config\n- [ ] Implement MustVerifyEmail interface on User model\n- [ ] Set up verifyEmailView callback\n- [ ] Add verified middleware to protected routes\n- [ ] Test verification email flow\n",[431],{"type":41,"tag":68,"props":432,"children":433},{"__ignoreMap":366},[434],{"type":47,"value":429},{"type":41,"tag":330,"props":436,"children":437},{},[438],{"type":41,"tag":50,"props":439,"children":440},{},[441,442,447],{"type":47,"value":66},{"type":41,"tag":68,"props":443,"children":445},{"className":444},[],[446],{"type":47,"value":73},{"type":47,"value":448}," for MustVerifyEmail implementation patterns.",{"type":41,"tag":351,"props":450,"children":452},{"id":451},"password-reset-setup",[453],{"type":47,"value":454},"Password Reset Setup",{"type":41,"tag":358,"props":456,"children":459},{"className":457,"code":458,"language":47},[361],"- [ ] Enable resetPasswords feature in config\n- [ ] Set up requestPasswordResetLinkView callback\n- [ ] Set up resetPasswordView callback\n- [ ] Define password.reset named route (if views disabled)\n- [ ] Test reset email and link flow\n",[460],{"type":41,"tag":68,"props":461,"children":462},{"__ignoreMap":366},[463],{"type":47,"value":458},{"type":41,"tag":330,"props":465,"children":466},{},[467],{"type":41,"tag":50,"props":468,"children":469},{},[470,471,476],{"type":47,"value":66},{"type":41,"tag":68,"props":472,"children":474},{"className":473},[],[475],{"type":47,"value":73},{"type":47,"value":477}," for custom password reset flow patterns.",{"type":41,"tag":351,"props":479,"children":481},{"id":480},"spa-authentication-setup",[482],{"type":47,"value":483},"SPA Authentication Setup",{"type":41,"tag":358,"props":485,"children":488},{"className":486,"code":487,"language":47},[361],"- [ ] Set 'views' => false in config\u002Ffortify.php\n- [ ] Install and configure Laravel Sanctum for session-based SPA authentication\n- [ ] Use the 'web' guard in config\u002Ffortify.php (required for session-based authentication)\n- [ ] Set up CSRF token handling\n- [ ] Test XHR authentication flows\n",[489],{"type":41,"tag":68,"props":490,"children":491},{"__ignoreMap":366},[492],{"type":47,"value":487},{"type":41,"tag":330,"props":494,"children":495},{},[496],{"type":41,"tag":50,"props":497,"children":498},{},[499,500,505],{"type":47,"value":66},{"type":41,"tag":68,"props":501,"children":503},{"className":502},[],[504],{"type":47,"value":73},{"type":47,"value":506}," for integration and SPA authentication patterns.",{"type":41,"tag":508,"props":509,"children":511},"h4",{"id":510},"two-factor-authentication-in-spa-mode",[512],{"type":47,"value":513},"Two-Factor Authentication in SPA Mode",{"type":41,"tag":50,"props":515,"children":516},{},[517,519,525,527,533],{"type":47,"value":518},"When ",{"type":41,"tag":68,"props":520,"children":522},{"className":521},[],[523],{"type":47,"value":524},"views",{"type":47,"value":526}," is set to ",{"type":41,"tag":68,"props":528,"children":530},{"className":529},[],[531],{"type":47,"value":532},"false",{"type":47,"value":534},", Fortify returns JSON responses instead of redirects.",{"type":41,"tag":50,"props":536,"children":537},{},[538],{"type":47,"value":539},"If a user attempts to log in and two-factor authentication is enabled, the login request will return a JSON response indicating that a two-factor challenge is required:",{"type":41,"tag":358,"props":541,"children":545},{"className":542,"code":543,"language":544,"meta":366,"style":366},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n    \"two_factor\": true\n}\n","json",[546],{"type":41,"tag":68,"props":547,"children":548},{"__ignoreMap":366},[549,561,591],{"type":41,"tag":550,"props":551,"children":554},"span",{"class":552,"line":553},"line",1,[555],{"type":41,"tag":550,"props":556,"children":558},{"style":557},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[559],{"type":47,"value":560},"{\n",{"type":41,"tag":550,"props":562,"children":564},{"class":552,"line":563},2,[565,570,576,581,586],{"type":41,"tag":550,"props":566,"children":567},{"style":557},[568],{"type":47,"value":569},"    \"",{"type":41,"tag":550,"props":571,"children":573},{"style":572},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[574],{"type":47,"value":575},"two_factor",{"type":41,"tag":550,"props":577,"children":578},{"style":557},[579],{"type":47,"value":580},"\"",{"type":41,"tag":550,"props":582,"children":583},{"style":557},[584],{"type":47,"value":585},":",{"type":41,"tag":550,"props":587,"children":588},{"style":557},[589],{"type":47,"value":590}," true\n",{"type":41,"tag":550,"props":592,"children":594},{"class":552,"line":593},3,[595],{"type":41,"tag":550,"props":596,"children":597},{"style":557},[598],{"type":47,"value":599},"}\n",{"type":41,"tag":56,"props":601,"children":603},{"id":602},"best-practices",[604],{"type":47,"value":605},"Best Practices",{"type":41,"tag":351,"props":607,"children":609},{"id":608},"custom-authentication-logic",[610],{"type":47,"value":611},"Custom Authentication Logic",{"type":41,"tag":50,"props":613,"children":614},{},[615,617,623,625,631,633,639],{"type":47,"value":616},"Override authentication behavior using ",{"type":41,"tag":68,"props":618,"children":620},{"className":619},[],[621],{"type":47,"value":622},"Fortify::authenticateUsing()",{"type":47,"value":624}," for custom user retrieval or ",{"type":41,"tag":68,"props":626,"children":628},{"className":627},[],[629],{"type":47,"value":630},"Fortify::authenticateThrough()",{"type":47,"value":632}," to customize the authentication pipeline. Override response contracts in ",{"type":41,"tag":68,"props":634,"children":636},{"className":635},[],[637],{"type":47,"value":638},"AppServiceProvider",{"type":47,"value":640}," for custom redirects.",{"type":41,"tag":351,"props":642,"children":644},{"id":643},"registration-customization",[645],{"type":47,"value":646},"Registration Customization",{"type":41,"tag":50,"props":648,"children":649},{},[650,652,658],{"type":47,"value":651},"Modify ",{"type":41,"tag":68,"props":653,"children":655},{"className":654},[],[656],{"type":47,"value":657},"app\u002FActions\u002FFortify\u002FCreateNewUser.php",{"type":47,"value":659}," to customize user creation logic, validation rules, and additional fields.",{"type":41,"tag":351,"props":661,"children":663},{"id":662},"rate-limiting",[664],{"type":47,"value":665},"Rate Limiting",{"type":41,"tag":50,"props":667,"children":668},{},[669,671,677],{"type":47,"value":670},"Configure via ",{"type":41,"tag":68,"props":672,"children":674},{"className":673},[],[675],{"type":47,"value":676},"fortify.limiters.login",{"type":47,"value":678}," in config. Default configuration throttles by username + IP combination.",{"type":41,"tag":56,"props":680,"children":682},{"id":681},"key-endpoints",[683],{"type":47,"value":684},"Key Endpoints",{"type":41,"tag":686,"props":687,"children":688},"table",{},[689,713],{"type":41,"tag":690,"props":691,"children":692},"thead",{},[693],{"type":41,"tag":694,"props":695,"children":696},"tr",{},[697,703,708],{"type":41,"tag":698,"props":699,"children":700},"th",{},[701],{"type":47,"value":702},"Feature",{"type":41,"tag":698,"props":704,"children":705},{},[706],{"type":47,"value":707},"Method",{"type":41,"tag":698,"props":709,"children":710},{},[711],{"type":47,"value":712},"Endpoint",{"type":41,"tag":714,"props":715,"children":716},"tbody",{},[717,740,761,782,803,824,846,867,888,909,930,951,972,994,1015,1036,1057,1078,1099,1120],{"type":41,"tag":694,"props":718,"children":719},{},[720,726,731],{"type":41,"tag":721,"props":722,"children":723},"td",{},[724],{"type":47,"value":725},"Login",{"type":41,"tag":721,"props":727,"children":728},{},[729],{"type":47,"value":730},"POST",{"type":41,"tag":721,"props":732,"children":733},{},[734],{"type":41,"tag":68,"props":735,"children":737},{"className":736},[],[738],{"type":47,"value":739},"\u002Flogin",{"type":41,"tag":694,"props":741,"children":742},{},[743,748,752],{"type":41,"tag":721,"props":744,"children":745},{},[746],{"type":47,"value":747},"Logout",{"type":41,"tag":721,"props":749,"children":750},{},[751],{"type":47,"value":730},{"type":41,"tag":721,"props":753,"children":754},{},[755],{"type":41,"tag":68,"props":756,"children":758},{"className":757},[],[759],{"type":47,"value":760},"\u002Flogout",{"type":41,"tag":694,"props":762,"children":763},{},[764,769,773],{"type":41,"tag":721,"props":765,"children":766},{},[767],{"type":47,"value":768},"Register",{"type":41,"tag":721,"props":770,"children":771},{},[772],{"type":47,"value":730},{"type":41,"tag":721,"props":774,"children":775},{},[776],{"type":41,"tag":68,"props":777,"children":779},{"className":778},[],[780],{"type":47,"value":781},"\u002Fregister",{"type":41,"tag":694,"props":783,"children":784},{},[785,790,794],{"type":41,"tag":721,"props":786,"children":787},{},[788],{"type":47,"value":789},"Password Reset Request",{"type":41,"tag":721,"props":791,"children":792},{},[793],{"type":47,"value":730},{"type":41,"tag":721,"props":795,"children":796},{},[797],{"type":41,"tag":68,"props":798,"children":800},{"className":799},[],[801],{"type":47,"value":802},"\u002Fforgot-password",{"type":41,"tag":694,"props":804,"children":805},{},[806,811,815],{"type":41,"tag":721,"props":807,"children":808},{},[809],{"type":47,"value":810},"Password Reset",{"type":41,"tag":721,"props":812,"children":813},{},[814],{"type":47,"value":730},{"type":41,"tag":721,"props":816,"children":817},{},[818],{"type":41,"tag":68,"props":819,"children":821},{"className":820},[],[822],{"type":47,"value":823},"\u002Freset-password",{"type":41,"tag":694,"props":825,"children":826},{},[827,832,837],{"type":41,"tag":721,"props":828,"children":829},{},[830],{"type":47,"value":831},"Email Verify Notice",{"type":41,"tag":721,"props":833,"children":834},{},[835],{"type":47,"value":836},"GET",{"type":41,"tag":721,"props":838,"children":839},{},[840],{"type":41,"tag":68,"props":841,"children":843},{"className":842},[],[844],{"type":47,"value":845},"\u002Femail\u002Fverify",{"type":41,"tag":694,"props":847,"children":848},{},[849,854,858],{"type":41,"tag":721,"props":850,"children":851},{},[852],{"type":47,"value":853},"Resend Verification",{"type":41,"tag":721,"props":855,"children":856},{},[857],{"type":47,"value":730},{"type":41,"tag":721,"props":859,"children":860},{},[861],{"type":41,"tag":68,"props":862,"children":864},{"className":863},[],[865],{"type":47,"value":866},"\u002Femail\u002Fverification-notification",{"type":41,"tag":694,"props":868,"children":869},{},[870,875,879],{"type":41,"tag":721,"props":871,"children":872},{},[873],{"type":47,"value":874},"Password Confirm",{"type":41,"tag":721,"props":876,"children":877},{},[878],{"type":47,"value":730},{"type":41,"tag":721,"props":880,"children":881},{},[882],{"type":41,"tag":68,"props":883,"children":885},{"className":884},[],[886],{"type":47,"value":887},"\u002Fuser\u002Fconfirm-password",{"type":41,"tag":694,"props":889,"children":890},{},[891,896,900],{"type":41,"tag":721,"props":892,"children":893},{},[894],{"type":47,"value":895},"Enable 2FA",{"type":41,"tag":721,"props":897,"children":898},{},[899],{"type":47,"value":730},{"type":41,"tag":721,"props":901,"children":902},{},[903],{"type":41,"tag":68,"props":904,"children":906},{"className":905},[],[907],{"type":47,"value":908},"\u002Fuser\u002Ftwo-factor-authentication",{"type":41,"tag":694,"props":910,"children":911},{},[912,917,921],{"type":41,"tag":721,"props":913,"children":914},{},[915],{"type":47,"value":916},"Confirm 2FA",{"type":41,"tag":721,"props":918,"children":919},{},[920],{"type":47,"value":730},{"type":41,"tag":721,"props":922,"children":923},{},[924],{"type":41,"tag":68,"props":925,"children":927},{"className":926},[],[928],{"type":47,"value":929},"\u002Fuser\u002Fconfirmed-two-factor-authentication",{"type":41,"tag":694,"props":931,"children":932},{},[933,938,942],{"type":41,"tag":721,"props":934,"children":935},{},[936],{"type":47,"value":937},"2FA Challenge",{"type":41,"tag":721,"props":939,"children":940},{},[941],{"type":47,"value":730},{"type":41,"tag":721,"props":943,"children":944},{},[945],{"type":41,"tag":68,"props":946,"children":948},{"className":947},[],[949],{"type":47,"value":950},"\u002Ftwo-factor-challenge",{"type":41,"tag":694,"props":952,"children":953},{},[954,959,963],{"type":41,"tag":721,"props":955,"children":956},{},[957],{"type":47,"value":958},"Get QR Code",{"type":41,"tag":721,"props":960,"children":961},{},[962],{"type":47,"value":836},{"type":41,"tag":721,"props":964,"children":965},{},[966],{"type":41,"tag":68,"props":967,"children":969},{"className":968},[],[970],{"type":47,"value":971},"\u002Fuser\u002Ftwo-factor-qr-code",{"type":41,"tag":694,"props":973,"children":974},{},[975,980,985],{"type":41,"tag":721,"props":976,"children":977},{},[978],{"type":47,"value":979},"Recovery Codes",{"type":41,"tag":721,"props":981,"children":982},{},[983],{"type":47,"value":984},"GET\u002FPOST",{"type":41,"tag":721,"props":986,"children":987},{},[988],{"type":41,"tag":68,"props":989,"children":991},{"className":990},[],[992],{"type":47,"value":993},"\u002Fuser\u002Ftwo-factor-recovery-codes",{"type":41,"tag":694,"props":995,"children":996},{},[997,1002,1006],{"type":41,"tag":721,"props":998,"children":999},{},[1000],{"type":47,"value":1001},"Passkey Login Options",{"type":41,"tag":721,"props":1003,"children":1004},{},[1005],{"type":47,"value":836},{"type":41,"tag":721,"props":1007,"children":1008},{},[1009],{"type":41,"tag":68,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":47,"value":1014},"\u002Fpasskeys\u002Flogin\u002Foptions",{"type":41,"tag":694,"props":1016,"children":1017},{},[1018,1023,1027],{"type":41,"tag":721,"props":1019,"children":1020},{},[1021],{"type":47,"value":1022},"Passkey Login",{"type":41,"tag":721,"props":1024,"children":1025},{},[1026],{"type":47,"value":730},{"type":41,"tag":721,"props":1028,"children":1029},{},[1030],{"type":41,"tag":68,"props":1031,"children":1033},{"className":1032},[],[1034],{"type":47,"value":1035},"\u002Fpasskeys\u002Flogin",{"type":41,"tag":694,"props":1037,"children":1038},{},[1039,1044,1048],{"type":41,"tag":721,"props":1040,"children":1041},{},[1042],{"type":47,"value":1043},"Passkey Confirm Options",{"type":41,"tag":721,"props":1045,"children":1046},{},[1047],{"type":47,"value":836},{"type":41,"tag":721,"props":1049,"children":1050},{},[1051],{"type":41,"tag":68,"props":1052,"children":1054},{"className":1053},[],[1055],{"type":47,"value":1056},"\u002Fpasskeys\u002Fconfirm\u002Foptions",{"type":41,"tag":694,"props":1058,"children":1059},{},[1060,1065,1069],{"type":41,"tag":721,"props":1061,"children":1062},{},[1063],{"type":47,"value":1064},"Passkey Confirm",{"type":41,"tag":721,"props":1066,"children":1067},{},[1068],{"type":47,"value":730},{"type":41,"tag":721,"props":1070,"children":1071},{},[1072],{"type":41,"tag":68,"props":1073,"children":1075},{"className":1074},[],[1076],{"type":47,"value":1077},"\u002Fpasskeys\u002Fconfirm",{"type":41,"tag":694,"props":1079,"children":1080},{},[1081,1086,1090],{"type":41,"tag":721,"props":1082,"children":1083},{},[1084],{"type":47,"value":1085},"Passkey Options",{"type":41,"tag":721,"props":1087,"children":1088},{},[1089],{"type":47,"value":836},{"type":41,"tag":721,"props":1091,"children":1092},{},[1093],{"type":41,"tag":68,"props":1094,"children":1096},{"className":1095},[],[1097],{"type":47,"value":1098},"\u002Fuser\u002Fpasskeys\u002Foptions",{"type":41,"tag":694,"props":1100,"children":1101},{},[1102,1107,1111],{"type":41,"tag":721,"props":1103,"children":1104},{},[1105],{"type":47,"value":1106},"Register Passkey",{"type":41,"tag":721,"props":1108,"children":1109},{},[1110],{"type":47,"value":730},{"type":41,"tag":721,"props":1112,"children":1113},{},[1114],{"type":41,"tag":68,"props":1115,"children":1117},{"className":1116},[],[1118],{"type":47,"value":1119},"\u002Fuser\u002Fpasskeys",{"type":41,"tag":694,"props":1121,"children":1122},{},[1123,1128,1133],{"type":41,"tag":721,"props":1124,"children":1125},{},[1126],{"type":47,"value":1127},"Delete Passkey",{"type":41,"tag":721,"props":1129,"children":1130},{},[1131],{"type":47,"value":1132},"DELETE",{"type":41,"tag":721,"props":1134,"children":1135},{},[1136],{"type":41,"tag":68,"props":1137,"children":1139},{"className":1138},[],[1140],{"type":47,"value":1141},"\u002Fuser\u002Fpasskeys\u002F{passkey}",{"type":41,"tag":1143,"props":1144,"children":1145},"style",{},[1146],{"type":47,"value":1147},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1149,"total":553},[1150],{"slug":4,"name":4,"fn":5,"description":6,"org":1151,"tags":1152,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1153,1154,1155,1156],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"items":1158,"total":1288},[1159,1174,1188,1195,1212,1229,1241,1255,1272],{"slug":1160,"name":1160,"fn":1161,"description":1162,"org":1163,"tags":1164,"stars":1171,"repoUrl":1172,"updatedAt":1173},"socialite-development","integrate OAuth social authentication","Manages OAuth social authentication with Laravel Socialite. Activate when adding social login providers; configuring OAuth redirect\u002Fcallback flows; retrieving authenticated user details; customizing scopes or parameters; setting up community providers; testing with Socialite fakes; or when the user mentions social login, OAuth, Socialite, or third-party authentication.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1165,1166,1167,1170],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":1168,"slug":1169,"type":15},"OAuth","oauth",{"name":13,"slug":14,"type":15},5745,"https:\u002F\u002Fgithub.com\u002Flaravel\u002Fsocialite","2026-07-13T06:22:10.648812",{"slug":1175,"name":1175,"fn":1176,"description":1177,"org":1178,"tags":1179,"stars":1185,"repoUrl":1186,"updatedAt":1187},"octane-development","develop applications with Laravel Octane","Use this skill when working with Laravel Octane, a long-running PHP worker server (Swoole, FrankenPHP, RoadRunner) where the application boots once and serves many requests instead of rebooting for each request like PHP-FPM. Trigger when installing Octane or starting its server; configuring or detecting the active driver for driver-specific code; using Octane::concurrently(), Octane::table(), the Octane cache, or shared in-memory state across workers; controlling worker memory growth; or testing Octane behavior. Skip plain PHP-FPM applications with no persistent worker.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1180,1181,1184],{"name":9,"slug":8,"type":15},{"name":1182,"slug":1183,"type":15},"Performance","performance",{"name":13,"slug":14,"type":15},4021,"https:\u002F\u002Fgithub.com\u002Flaravel\u002Foctane","2026-07-16T06:02:20.284131",{"slug":4,"name":4,"fn":5,"description":6,"org":1189,"tags":1190,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1191,1192,1193,1194],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":1196,"name":1196,"fn":1197,"description":1198,"org":1199,"tags":1200,"stars":1209,"repoUrl":1210,"updatedAt":1211},"ai-sdk-development","build AI agents with Laravel AI SDK","TRIGGER when working with ai-sdk which is Laravel official first-party AI SDK. Activate when building, editing AI agents, chatbots, text generation, image generation, audio\u002FTTS, transcription\u002FSTT, embeddings, RAG, vector stores, reranking, structured output, streaming, conversation memory, tools, queueing, broadcasting, and provider failover across OpenAI, Anthropic, Gemini, Azure, Groq, xAI, DeepSeek, Mistral, Ollama, ElevenLabs, Cohere, Jina, and VoyageAI. Invoke when the user references ai-sdk, the `Laravel\\Ai\\` namespace, or this project's AI features — not for other AI packages used directly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1201,1204,1207,1208],{"name":1202,"slug":1203,"type":15},"Agents","agents",{"name":1205,"slug":1206,"type":15},"AI SDK","ai-sdk",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},1040,"https:\u002F\u002Fgithub.com\u002Flaravel\u002Fai","2026-07-13T06:22:24.770526",{"slug":1213,"name":1213,"fn":1214,"description":1215,"org":1216,"tags":1217,"stars":1226,"repoUrl":1227,"updatedAt":1228},"deploying-laravel-cloud","deploy Laravel applications to Laravel Cloud","Deploys and manages Laravel applications on Laravel Cloud using the `cloud` CLI. Use when the user wants to deploy an app, ship to cloud, create\u002Fmanage environments, databases, caches, domains, instances, background processes, check billing\u002Fusage\u002Fspend, or any Laravel Cloud infrastructure. Triggers on deploy, ship, cloud management, environment setup, database provisioning, billing\u002Fusage queries, and similar cloud operations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1218,1221,1224,1225],{"name":1219,"slug":1220,"type":15},"CLI","cli",{"name":1222,"slug":1223,"type":15},"Deployment","deployment",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},665,"https:\u002F\u002Fgithub.com\u002Flaravel\u002Fagent-skills","2026-07-13T06:22:18.36234",{"slug":1230,"name":1230,"fn":1231,"description":1232,"org":1233,"tags":1234,"stars":1226,"repoUrl":1227,"updatedAt":1240},"starter-kit-upgrade","upgrade Laravel starter kit projects","Selectively pull upstream improvements from a Laravel starter kit (laravel\u002Fvue-starter-kit, laravel\u002Freact-starter-kit, laravel\u002Fsvelte-starter-kit, laravel\u002Flivewire-starter-kit) into a project bootstrapped from one. Use when the user wants to update, sync, or migrate features from their starter kit. Applies one feature at a time on a dedicated branch; never auto-merges customized files.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1235,1236,1239],{"name":9,"slug":8,"type":15},{"name":1237,"slug":1238,"type":15},"Maintenance","maintenance",{"name":13,"slug":14,"type":15},"2026-07-13T06:22:11.972952",{"slug":1242,"name":1242,"fn":1243,"description":1244,"org":1245,"tags":1246,"stars":1252,"repoUrl":1253,"updatedAt":1254},"pennant-development","manage feature flags with Laravel Pennant","Use when working with Laravel Pennant the official Laravel feature flag package. Trigger whenever the query mentions Pennant by name or involves feature flags or feature toggles in a Laravel project. Tasks include defining feature flags checking whether features are active creating class based features in `app\u002FFeatures` using Blade `@feature` directives scoping flags to users or teams building custom Pennant storage drivers protecting routes with feature flags testing feature flags with Pest or PHPUnit and implementing A B testing or gradual rollouts with feature flags. Do not trigger for generic Laravel configuration authorization policies authentication or non Pennant feature management systems.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1247,1250,1251],{"name":1248,"slug":1249,"type":15},"Feature Flags","feature-flags",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},585,"https:\u002F\u002Fgithub.com\u002Flaravel\u002Fpennant","2026-07-13T06:22:26.043758",{"slug":1256,"name":1256,"fn":1257,"description":1258,"org":1259,"tags":1260,"stars":1269,"repoUrl":1270,"updatedAt":1271},"configure-nightwatch","configure Laravel Nightwatch data collection","Configures Laravel Nightwatch data collection, sampling rates, filtering rules, and redaction policies. Use when setting up Nightwatch, managing data volume, protecting sensitive data (PII), or optimizing event collection for production workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1261,1264,1265,1268],{"name":1262,"slug":1263,"type":15},"Configuration","configuration",{"name":9,"slug":8,"type":15},{"name":1266,"slug":1267,"type":15},"Observability","observability",{"name":13,"slug":14,"type":15},368,"https:\u002F\u002Fgithub.com\u002Flaravel\u002Fnightwatch","2026-07-13T06:22:29.945491",{"slug":1273,"name":1273,"fn":1257,"description":1274,"org":1275,"tags":1276,"stars":1285,"repoUrl":1286,"updatedAt":1287},"nightwatch-configure","Configure Laravel Nightwatch data collection, sampling rates, filtering rules, and redaction policies. Use this when setting up Nightwatch, managing data volume, protecting sensitive data (PII), or optimizing event collection for production workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1277,1278,1279,1282],{"name":1262,"slug":1263,"type":15},{"name":9,"slug":8,"type":15},{"name":1280,"slug":1281,"type":15},"Monitoring","monitoring",{"name":1283,"slug":1284,"type":15},"Privacy","privacy",0,"https:\u002F\u002Fgithub.com\u002Flaravel\u002Fnightwatch-cursor-plugin","2026-07-16T06:02:16.946147",9]