[{"data":1,"prerenderedAt":934},["ShallowReactive",2],{"navigation":3,"\u002F2.x\u002Fdigging-deeper\u002Fgates":307,"\u002F2.x\u002Fdigging-deeper\u002Fgates-surround":929},{"3.x":4,"2.x":203},[5,32,61,99,121,147,165],{"title":6,"icon":7,"path":8,"stem":9,"children":10,"page":31},"Getting Started","i-heroicons-star","\u002Fgetting-started","1.getting-started",[11,15,19,23,27],{"title":12,"path":13,"stem":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":16,"path":17,"stem":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":20,"path":21,"stem":22},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":24,"path":25,"stem":26},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F4.configuration",{"title":28,"path":29,"stem":30},"Upgrade guide","\u002Fgetting-started\u002Fupgrade-guide","1.getting-started\u002F5.upgrade-guide",false,{"title":33,"icon":34,"path":35,"stem":36,"children":37,"page":31},"Resources","i-heroicons-document-text","\u002Fresources","2.resources",[38,41,45,49,53,57],{"title":33,"path":39,"stem":40},"\u002Fresources\u002Fresources","2.resources\u002F1.resources",{"title":42,"path":43,"stem":44},"Fields","\u002Fresources\u002Ffields","2.resources\u002F2.fields",{"title":46,"path":47,"stem":48},"Relationships","\u002Fresources\u002Frelations","2.resources\u002F3.relations",{"title":50,"path":51,"stem":52},"Validation","\u002Fresources\u002Fvalidation","2.resources\u002F4.validation",{"title":54,"path":55,"stem":56},"Perimeter","\u002Fresources\u002Fperimeter","2.resources\u002F5.perimeter",{"title":58,"path":59,"stem":60},"Limits","\u002Fresources\u002Flimits","2.resources\u002F6.limits",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":31},"Search","i-heroicons-magnifying-glass","\u002Fsearch","3.search",[67,71,75,79,83,87,91,95],{"title":68,"path":69,"stem":70},"Search overview","\u002Fsearch\u002Foverview","3.search\u002F1.overview",{"title":72,"path":73,"stem":74},"Search filters","\u002Fsearch\u002Ffilters","3.search\u002F2.filters",{"title":76,"path":77,"stem":78},"Sorts and selects","\u002Fsearch\u002Fsorts-and-selects","3.search\u002F3.sorts-and-selects",{"title":80,"path":81,"stem":82},"Includes and aggregates","\u002Fsearch\u002Fincludes-and-aggregates","3.search\u002F4.includes-and-aggregates",{"title":84,"path":85,"stem":86},"Scopes and instructions","\u002Fsearch\u002Fscopes-and-instructions","3.search\u002F5.scopes-and-instructions",{"title":88,"path":89,"stem":90},"Text search","\u002Fsearch\u002Ftext-search","3.search\u002F6.text-search",{"title":92,"path":93,"stem":94},"Search engines","\u002Fsearch\u002Fsearch-engines","3.search\u002F7.search-engines",{"title":96,"path":97,"stem":98},"Searching outside HTTP","\u002Fsearch\u002Foutside-http","3.search\u002F8.outside-http",{"title":100,"icon":101,"path":102,"stem":103,"children":104,"page":31},"Writing","i-heroicons-pencil-square","\u002Fwriting","4.writing",[105,109,113,117],{"title":106,"path":107,"stem":108},"Mutate","\u002Fwriting\u002Fmutate","4.writing\u002F1.mutate",{"title":110,"path":111,"stem":112},"Writing relations","\u002Fwriting\u002Frelations","4.writing\u002F2.relations",{"title":114,"path":115,"stem":116},"Versioned rows","\u002Fwriting\u002Fversioned-rows","4.writing\u002F3.versioned-rows",{"title":118,"path":119,"stem":120},"Deleting and restoring","\u002Fwriting\u002Fdeleting","4.writing\u002F4.deleting",{"title":122,"icon":123,"path":124,"stem":125,"children":126,"page":31},"Actions and Metrics","i-heroicons-bolt","\u002Factions-and-metrics","5.actions-and-metrics",[127,131,135,139,143],{"title":128,"path":129,"stem":130},"Actions","\u002Factions-and-metrics\u002Factions","5.actions-and-metrics\u002F1.actions",{"title":132,"path":133,"stem":134},"Queued Actions","\u002Factions-and-metrics\u002Fqueued-actions","5.actions-and-metrics\u002F2.queued-actions",{"title":136,"path":137,"stem":138},"Confirmation","\u002Factions-and-metrics\u002Fconfirmation","5.actions-and-metrics\u002F3.confirmation",{"title":140,"path":141,"stem":142},"Metrics","\u002Factions-and-metrics\u002Fmetrics","5.actions-and-metrics\u002F4.metrics",{"title":144,"path":145,"stem":146},"Exports","\u002Factions-and-metrics\u002Fexports","5.actions-and-metrics\u002F5.exports",{"title":148,"icon":149,"path":150,"stem":151,"children":152,"page":31},"Authorization","i-heroicons-lock-closed","\u002Fauthorization","6.authorization",[153,157,161],{"title":154,"path":155,"stem":156},"Policies","\u002Fauthorization\u002Fpolicies","6.authorization\u002F1.policies",{"title":158,"path":159,"stem":160},"Gates","\u002Fauthorization\u002Fgates","6.authorization\u002F2.gates",{"title":162,"path":163,"stem":164},"Decision Cache","\u002Fauthorization\u002Fdecision-cache","6.authorization\u002F3.decision-cache",{"title":166,"icon":167,"path":168,"stem":169,"children":170,"page":31},"Digging Deeper","i-heroicons-list-bullet","\u002Fdigging-deeper","7.digging-deeper",[171,175,179,183,187,191,195,199],{"title":172,"path":173,"stem":174},"Details","\u002Fdigging-deeper\u002Fdetails","7.digging-deeper\u002F1.details",{"title":176,"path":177,"stem":178},"Events and Hooks","\u002Fdigging-deeper\u002Fevents-and-hooks","7.digging-deeper\u002F2.events-and-hooks",{"title":180,"path":181,"stem":182},"Custom Responses","\u002Fdigging-deeper\u002Fresponses","7.digging-deeper\u002F3.responses",{"title":184,"path":185,"stem":186},"OpenAPI Documentation","\u002Fdigging-deeper\u002Fopenapi","7.digging-deeper\u002F4.openapi",{"title":188,"path":189,"stem":190},"Precognition","\u002Fdigging-deeper\u002Fprecognition","7.digging-deeper\u002F5.precognition",{"title":192,"path":193,"stem":194},"Artisan Commands","\u002Fdigging-deeper\u002Fartisan","7.digging-deeper\u002F6.artisan",{"title":196,"path":197,"stem":198},"Laravel Boost Skill","\u002Fdigging-deeper\u002Fai-skill","7.digging-deeper\u002F7.ai-skill",{"title":200,"path":201,"stem":202},"Translations","\u002Fdigging-deeper\u002Ftranslations","7.digging-deeper\u002F8.translations",[204,215,237,260,297],{"title":6,"icon":7,"path":205,"stem":206,"children":207,"page":31},"\u002F2.x\u002Fgetting-started","2.x\u002F1.getting-started",[208,211],{"title":16,"path":209,"stem":210},"\u002F2.x\u002Fgetting-started\u002Finstallation","2.x\u002F1.getting-started\u002F1.installation",{"title":212,"path":213,"stem":214},"Upgrade Guide","\u002F2.x\u002Fgetting-started\u002Fupgrade-guide","2.x\u002F1.getting-started\u002F2.upgrade-guide",{"title":216,"icon":217,"path":218,"stem":219,"children":220,"page":31},"Endpoints","i-heroicons-arrow-uturn-left","\u002F2.x\u002Fendpoints","2.x\u002F2.endpoints",[221,224,227,230,233],{"title":172,"path":222,"stem":223},"\u002F2.x\u002Fendpoints\u002Fdetails","2.x\u002F2.endpoints\u002F1.details",{"title":62,"path":225,"stem":226},"\u002F2.x\u002Fendpoints\u002Fsearch","2.x\u002F2.endpoints\u002F2.search",{"title":106,"path":228,"stem":229},"\u002F2.x\u002Fendpoints\u002Fmutate","2.x\u002F2.endpoints\u002F3.mutate",{"title":128,"path":231,"stem":232},"\u002F2.x\u002Fendpoints\u002Factions","2.x\u002F2.endpoints\u002F4.actions",{"title":234,"path":235,"stem":236},"Delete","\u002F2.x\u002Fendpoints\u002Fdelete","2.x\u002F2.endpoints\u002F5.delete",{"title":33,"icon":34,"path":238,"stem":239,"children":240,"page":31},"\u002F2.x\u002Fresources","2.x\u002F3.resources",[241,245,249,252,256],{"title":242,"path":243,"stem":244},"Basics","\u002F2.x\u002Fresources\u002Fbasics","2.x\u002F3.resources\u002F1.basics",{"title":246,"path":247,"stem":248},"Exposed Data","\u002F2.x\u002Fresources\u002Fexposed-data","2.x\u002F3.resources\u002F2.exposed-data",{"title":46,"path":250,"stem":251},"\u002F2.x\u002Fresources\u002Frelationships","2.x\u002F3.resources\u002F3.relationships",{"title":253,"path":254,"stem":255},"Validations","\u002F2.x\u002Fresources\u002Fvalidations","2.x\u002F3.resources\u002F4.validations",{"title":257,"path":258,"stem":259},"Interactions","\u002F2.x\u002Fresources\u002Finteractions","2.x\u002F3.resources\u002F5.interactions",{"title":166,"icon":167,"path":261,"stem":262,"children":263,"page":31},"\u002F2.x\u002Fdigging-deeper","2.x\u002F4.digging-deeper",[264,267,271,274,278,282,286,290,294],{"title":128,"path":265,"stem":266},"\u002F2.x\u002Fdigging-deeper\u002Factions","2.x\u002F4.digging-deeper\u002F1.actions",{"title":268,"path":269,"stem":270},"Hooks","\u002F2.x\u002Fdigging-deeper\u002Fhooks","2.x\u002F4.digging-deeper\u002F2.hooks",{"title":158,"path":272,"stem":273},"\u002F2.x\u002Fdigging-deeper\u002Fgates","2.x\u002F4.digging-deeper\u002F3.gates",{"title":275,"path":276,"stem":277},"Authorizations","\u002F2.x\u002Fdigging-deeper\u002Fauthorizations","2.x\u002F4.digging-deeper\u002F4.authorizations",{"title":279,"path":280,"stem":281},"Full Text Search","\u002F2.x\u002Fdigging-deeper\u002Ffull-text-search","2.x\u002F4.digging-deeper\u002F5.full-text-search",{"title":283,"path":284,"stem":285},"Instructions","\u002F2.x\u002Fdigging-deeper\u002Finstructions","2.x\u002F4.digging-deeper\u002F6.instructions",{"title":287,"path":288,"stem":289},"Responses","\u002F2.x\u002Fdigging-deeper\u002Fresponses","2.x\u002F4.digging-deeper\u002F7.responses",{"title":291,"path":292,"stem":293},"Documentation","\u002F2.x\u002Fdigging-deeper\u002Fdocumentation","2.x\u002F4.digging-deeper\u002F8.documentation",{"title":188,"path":295,"stem":296},"\u002F2.x\u002Fdigging-deeper\u002Fprecognition","2.x\u002F4.digging-deeper\u002F9.precognition",{"title":298,"icon":299,"path":300,"stem":301,"children":302,"page":31},"Integrations","i-lucide-puzzle","\u002F2.x\u002Fintegrations","2.x\u002F5.integrations",[303],{"title":304,"path":305,"stem":306},"Flutter","\u002F2.x\u002Fintegrations\u002Fflutter","2.x\u002F5.integrations\u002F1.flutter",{"id":308,"title":158,"body":309,"description":922,"extension":923,"links":924,"meta":925,"navigation":926,"path":272,"seo":927,"stem":273,"__hash__":928},"docs2x\u002F2.x\u002F4.digging-deeper\u002F3.gates.md",{"type":310,"value":311,"toc":915},"minimark",[312,324,327,332,339,342,347,355,435,439,446,522,526,536,549,556,764,778,911],[313,314,315,316,323],"p",{},"If you are not familiar with what a \"Gate\" is, please have a look at the ",[317,318,322],"a",{"href":319,"rel":320},"https:\u002F\u002Flaravel.com\u002Fdocs\u002Fauthorization",[321],"nofollow","Laravel Documentation",".",[313,325,326],{},"Laravel Rest Api takes advantage of this feature to provide your frontend users direct access to the current authenticated user rights.",[328,329,331],"h2",{"id":330},"using-gates","Using gates",[313,333,334,335],{},"Gates are enabled by default. You just have to provide the one you want in your ",[317,336,338],{"href":337},"\u002F2.x\u002Fendpoints\u002Fsearch#gates","search endpoint.",[313,340,341],{},"If you don't want to use this feature you have two ways to disable it:",[343,344,346],"h3",{"id":345},"globally","Globally",[313,348,349,350,354],{},"In your ",[351,352,353],"code",{},"config\u002Frest.php"," file, you can directly specify to disable this feature:",[356,357,362],"pre",{"className":358,"code":359,"language":360,"meta":361,"style":361},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[\n    \u002F\u002F ...\n    'gates' => [\n        'enabled' => false, \u002F\u002F Switch this to false\n    ]\n    \u002F\u002F ...\n]\n","php","",[351,363,364,373,380,399,418,424,429],{"__ignoreMap":361},[365,366,369],"span",{"class":367,"line":368},"line",1,[365,370,372],{"class":371},"sMK4o","[\n",[365,374,376],{"class":367,"line":375},2,[365,377,379],{"class":378},"sHwdD","    \u002F\u002F ...\n",[365,381,383,386,390,393,396],{"class":367,"line":382},3,[365,384,385],{"class":371},"    '",[365,387,389],{"class":388},"sfazB","gates",[365,391,392],{"class":371},"'",[365,394,395],{"class":371}," =>",[365,397,398],{"class":371}," [\n",[365,400,402,405,408,410,412,415],{"class":367,"line":401},4,[365,403,404],{"class":371},"        '",[365,406,407],{"class":388},"enabled",[365,409,392],{"class":371},[365,411,395],{"class":371},[365,413,414],{"class":371}," false,",[365,416,417],{"class":378}," \u002F\u002F Switch this to false\n",[365,419,421],{"class":367,"line":420},5,[365,422,423],{"class":371},"    ]\n",[365,425,427],{"class":367,"line":426},6,[365,428,379],{"class":378},[365,430,432],{"class":367,"line":431},7,[365,433,434],{"class":371},"]\n",[343,436,438],{"id":437},"resource","Resource",[313,440,441,442,445],{},"If you want to disable this feature for certain resources only, you can use the ",[351,443,444],{},"DisableGates"," trait on your resource file:",[356,447,450],{"className":358,"code":448,"filename":449,"language":360,"meta":361,"style":361},"class UserResource extends Resource\n{\n    use \\Lomkit\\Rest\\Concerns\\Resource\\DisableGates;\n    \n    \u002F\u002F ...\n}\n","UserResource.php",[351,451,452,468,473,508,513,517],{"__ignoreMap":361},[365,453,454,458,462,465],{"class":367,"line":368},[365,455,457],{"class":456},"spNyl","class",[365,459,461],{"class":460},"sBMFI"," UserResource",[365,463,464],{"class":456}," extends",[365,466,467],{"class":460}," Resource\n",[365,469,470],{"class":367,"line":375},[365,471,472],{"class":371},"{\n",[365,474,475,479,482,486,489,492,494,497,499,501,503,505],{"class":367,"line":382},[365,476,478],{"class":477},"sbssI","    use",[365,480,481],{"class":371}," \\",[365,483,485],{"class":484},"sTEyZ","Lomkit",[365,487,488],{"class":371},"\\",[365,490,491],{"class":484},"Rest",[365,493,488],{"class":371},[365,495,496],{"class":484},"Concerns",[365,498,488],{"class":371},[365,500,438],{"class":484},[365,502,488],{"class":371},[365,504,444],{"class":484},[365,506,507],{"class":371},";\n",[365,509,510],{"class":367,"line":401},[365,511,512],{"class":484},"    \n",[365,514,515],{"class":367,"line":420},[365,516,379],{"class":378},[365,518,519],{"class":367,"line":426},[365,520,521],{"class":371},"}\n",[328,523,525],{"id":524},"policy-messages-in-gates","Policy messages in gates",[313,527,528,529,532,533,323],{},"To surface policy messages explaining authorization failures, first set the config ",[351,530,531],{},"rest.gates.message.enabled"," to ",[351,534,535],{},"true",[537,538,539],"warning",{},[313,540,541,542,544,545,548],{},"Enabling this changes the ",[351,543,389],{}," payload shape returned by the ",[351,546,547],{},"search"," endpoint and may require frontend updates.",[313,550,551,552,555],{},"In your policy, return an authorization ",[351,553,554],{},"Response",":",[356,557,559],{"className":358,"code":558,"language":360,"meta":361,"style":361},"use App\\Models\\Post;\nuse App\\Models\\User;\nuse Illuminate\\Auth\\Access\\Response;\n \n\u002F**\n * Determine if the given post can be updated by the user.\n *\u002F\npublic function update(User $user, Post $post): Response\n{\n    return $user->id === $post->user_id\n        ? Response::allow()\n        : Response::deny('You do not own this post.');\n}\n",[351,560,561,581,598,621,626,631,636,641,682,687,716,734,759],{"__ignoreMap":361},[365,562,563,566,569,571,574,576,579],{"class":367,"line":368},[365,564,565],{"class":477},"use",[365,567,568],{"class":484}," App",[365,570,488],{"class":371},[365,572,573],{"class":484},"Models",[365,575,488],{"class":371},[365,577,578],{"class":484},"Post",[365,580,507],{"class":371},[365,582,583,585,587,589,591,593,596],{"class":367,"line":375},[365,584,565],{"class":477},[365,586,568],{"class":484},[365,588,488],{"class":371},[365,590,573],{"class":484},[365,592,488],{"class":371},[365,594,595],{"class":484},"User",[365,597,507],{"class":371},[365,599,600,602,605,607,610,612,615,617,619],{"class":367,"line":382},[365,601,565],{"class":477},[365,603,604],{"class":484}," Illuminate",[365,606,488],{"class":371},[365,608,609],{"class":484},"Auth",[365,611,488],{"class":371},[365,613,614],{"class":484},"Access",[365,616,488],{"class":371},[365,618,554],{"class":484},[365,620,507],{"class":371},[365,622,623],{"class":367,"line":401},[365,624,625],{"class":484}," \n",[365,627,628],{"class":367,"line":420},[365,629,630],{"class":378},"\u002F**\n",[365,632,633],{"class":367,"line":426},[365,634,635],{"class":378}," * Determine if the given post can be updated by the user.\n",[365,637,638],{"class":367,"line":431},[365,639,640],{"class":378}," *\u002F\n",[365,642,644,647,650,654,657,659,662,665,668,671,673,676,679],{"class":367,"line":643},8,[365,645,646],{"class":456},"public",[365,648,649],{"class":456}," function",[365,651,653],{"class":652},"s2Zo4"," update",[365,655,656],{"class":371},"(",[365,658,595],{"class":460},[365,660,661],{"class":371}," $",[365,663,664],{"class":484},"user",[365,666,667],{"class":371},",",[365,669,670],{"class":460}," Post",[365,672,661],{"class":371},[365,674,675],{"class":484},"post",[365,677,678],{"class":371},"):",[365,680,681],{"class":460}," Response\n",[365,683,685],{"class":367,"line":684},9,[365,686,472],{"class":371},[365,688,690,694,696,698,701,704,707,709,711,713],{"class":367,"line":689},10,[365,691,693],{"class":692},"s7zQu","    return",[365,695,661],{"class":371},[365,697,664],{"class":484},[365,699,700],{"class":371},"->",[365,702,703],{"class":484},"id ",[365,705,706],{"class":371},"===",[365,708,661],{"class":371},[365,710,675],{"class":484},[365,712,700],{"class":371},[365,714,715],{"class":484},"user_id\n",[365,717,719,722,725,728,731],{"class":367,"line":718},11,[365,720,721],{"class":371},"        ?",[365,723,724],{"class":460}," Response",[365,726,727],{"class":371},"::",[365,729,730],{"class":652},"allow",[365,732,733],{"class":371},"()\n",[365,735,737,740,742,744,747,749,751,754,756],{"class":367,"line":736},12,[365,738,739],{"class":371},"        :",[365,741,724],{"class":460},[365,743,727],{"class":371},[365,745,746],{"class":652},"deny",[365,748,656],{"class":371},[365,750,392],{"class":371},[365,752,753],{"class":388},"You do not own this post.",[365,755,392],{"class":371},[365,757,758],{"class":371},");\n",[365,760,762],{"class":367,"line":761},13,[365,763,521],{"class":371},[313,765,766,767,769,770,773,774,777],{},"This changes the ",[351,768,547],{}," gates payload by adding a ",[351,771,772],{},"message"," and ",[351,775,776],{},"allowed"," keys:",[356,779,783],{"className":780,"code":781,"language":782,"meta":361,"style":361},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"gates\": {\n        \"authorized_to_update\": {\n          \"allowed\": false,\n          \"message\": \"You do not own this post.\"\n        }\n      }\n    }\n  ]\n}\n","json",[351,784,785,789,804,809,827,840,854,869,887,892,897,902,907],{"__ignoreMap":361},[365,786,787],{"class":367,"line":368},[365,788,472],{"class":371},[365,790,791,794,797,800,802],{"class":367,"line":375},[365,792,793],{"class":371},"  \"",[365,795,796],{"class":456},"data",[365,798,799],{"class":371},"\"",[365,801,555],{"class":371},[365,803,398],{"class":371},[365,805,806],{"class":367,"line":382},[365,807,808],{"class":371},"    {\n",[365,810,811,814,817,819,821,824],{"class":367,"line":401},[365,812,813],{"class":371},"      \"",[365,815,816],{"class":460},"id",[365,818,799],{"class":371},[365,820,555],{"class":371},[365,822,823],{"class":477}," 1",[365,825,826],{"class":371},",\n",[365,828,829,831,833,835,837],{"class":367,"line":420},[365,830,813],{"class":371},[365,832,389],{"class":460},[365,834,799],{"class":371},[365,836,555],{"class":371},[365,838,839],{"class":371}," {\n",[365,841,842,845,848,850,852],{"class":367,"line":426},[365,843,844],{"class":371},"        \"",[365,846,847],{"class":477},"authorized_to_update",[365,849,799],{"class":371},[365,851,555],{"class":371},[365,853,839],{"class":371},[365,855,856,859,862,864,866],{"class":367,"line":431},[365,857,858],{"class":371},"          \"",[365,860,776],{"class":861},"swJcz",[365,863,799],{"class":371},[365,865,555],{"class":371},[365,867,868],{"class":371}," false,\n",[365,870,871,873,875,877,879,882,884],{"class":367,"line":643},[365,872,858],{"class":371},[365,874,772],{"class":861},[365,876,799],{"class":371},[365,878,555],{"class":371},[365,880,881],{"class":371}," \"",[365,883,753],{"class":388},[365,885,886],{"class":371},"\"\n",[365,888,889],{"class":367,"line":684},[365,890,891],{"class":371},"        }\n",[365,893,894],{"class":367,"line":689},[365,895,896],{"class":371},"      }\n",[365,898,899],{"class":367,"line":718},[365,900,901],{"class":371},"    }\n",[365,903,904],{"class":367,"line":736},[365,905,906],{"class":371},"  ]\n",[365,908,909],{"class":367,"line":761},[365,910,521],{"class":371},[912,913,914],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":361,"searchDepth":368,"depth":375,"links":916},[917,921],{"id":330,"depth":375,"text":331,"children":918},[919,920],{"id":345,"depth":382,"text":346},{"id":437,"depth":382,"text":438},{"id":524,"depth":375,"text":525},"Gates is the way to inform your api consumers what actions are allowed on different models.","md",null,{},true,{"description":922},"nXjldp_aOkUuKEtW1njde6QW-HuB60B7b2g1k2b_Sr0",[930,932],{"title":268,"path":269,"stem":270,"description":931,"children":-1},"Hooks are designed to let you the ability to react on model's lifecycle of your models.",{"title":275,"path":276,"stem":277,"description":933,"children":-1},"Laravel Rest Api exposes a lot of information and it is crucial for your applications to secure the access to resources. Thankfully, Laravel Rest Api seamlessly integrates with Laravel, ensuring a straightforward approach to securing your API.",1794181353227]