[{"data":1,"prerenderedAt":1010},["ShallowReactive",2],{"navigation":3,"\u002F2.x\u002Fdigging-deeper\u002Fhooks":307,"\u002F2.x\u002Fdigging-deeper\u002Fhooks-surround":1005},{"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":268,"body":309,"description":999,"extension":1000,"links":1001,"meta":1002,"navigation":574,"path":269,"seo":1003,"stem":270,"__hash__":1004},"docs2x\u002F2.x\u002F4.digging-deeper\u002F2.hooks.md",{"type":310,"value":311,"toc":995},"minimark",[312,325,330,338,488,675,679,686,778,798,991],[313,314,315,316,320,321,324],"p",{},"Hooks are designed in two ways: one on the ",[317,318,319],"strong",{},"controller"," (around HTTP endpoints) and one on the ",[317,322,323],{},"resource"," (around model lifecycle events).",[326,327,329],"h2",{"id":328},"controller-hooks","Controller Hooks",[313,331,332,333,337],{},"On your rest controller you can react to every endpoint. Hooks are defined as ",[334,335,336],"code",{},"protected"," methods and receive the current request as their only argument.",[339,340,341,354],"table",{},[342,343,344],"thead",{},[345,346,347,351],"tr",{},[348,349,350],"th",{},"Hook",[348,352,353],{},"Fires",[355,356,357,368,378,388,398,408,418,428,438,448,458,468,478],"tbody",{},[345,358,359,365],{},[360,361,362],"td",{},[334,363,364],{},"beforeDetails",[360,366,367],{},"Before the details endpoint response",[345,369,370,375],{},[360,371,372],{},[334,373,374],{},"beforeSearch",[360,376,377],{},"Before the search query runs",[345,379,380,385],{},[360,381,382],{},[334,383,384],{},"afterSearch",[360,386,387],{},"After the search results are built",[345,389,390,395],{},[360,391,392],{},[334,393,394],{},"beforeMutate",[360,396,397],{},"Before any mutate operations run",[345,399,400,405],{},[360,401,402],{},[334,403,404],{},"afterMutate",[360,406,407],{},"After all mutate operations complete",[345,409,410,415],{},[360,411,412],{},[334,413,414],{},"beforeOperate",[360,416,417],{},"Before an action is dispatched",[345,419,420,425],{},[360,421,422],{},[334,423,424],{},"afterOperate",[360,426,427],{},"After an action completes",[345,429,430,435],{},[360,431,432],{},[334,433,434],{},"beforeDestroy",[360,436,437],{},"Before models are deleted",[345,439,440,445],{},[360,441,442],{},[334,443,444],{},"afterDestroy",[360,446,447],{},"After models are deleted",[345,449,450,455],{},[360,451,452],{},[334,453,454],{},"beforeForceDestroy",[360,456,457],{},"Before models are force-deleted",[345,459,460,465],{},[360,461,462],{},[334,463,464],{},"afterForceDestroy",[360,466,467],{},"After models are force-deleted",[345,469,470,475],{},[360,471,472],{},[334,473,474],{},"beforeRestore",[360,476,477],{},"Before soft-deleted models are restored",[345,479,480,485],{},[360,481,482],{},[334,483,484],{},"afterRestore",[360,486,487],{},"After soft-deleted models are restored",[489,490,495],"pre",{"className":491,"code":492,"language":493,"meta":494,"style":494},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","class UsersController extends RestController\n{\n    public static $resource = App\\Rest\\Resources\\UserResource::class;\n\n    protected function beforeSearch(SearchRequest $request): void\n    {\n        \u002F\u002F Runs before the search query executes\n    }\n\n    protected function afterMutate(MutateRequest $request): void\n    {\n        \u002F\u002F Runs after all mutate operations complete\n    }\n}\n","php","",[334,496,497,516,523,569,576,606,612,619,625,630,653,658,664,669],{"__ignoreMap":494},[498,499,502,506,510,513],"span",{"class":500,"line":501},"line",1,[498,503,505],{"class":504},"spNyl","class",[498,507,509],{"class":508},"sBMFI"," UsersController",[498,511,512],{"class":504}," extends",[498,514,515],{"class":508}," RestController\n",[498,517,519],{"class":500,"line":518},2,[498,520,522],{"class":521},"sMK4o","{\n",[498,524,526,529,532,535,539,542,545,548,551,553,555,557,560,563,566],{"class":500,"line":525},3,[498,527,528],{"class":504},"    public",[498,530,531],{"class":504}," static",[498,533,534],{"class":521}," $",[498,536,538],{"class":537},"sTEyZ","resource ",[498,540,541],{"class":521},"=",[498,543,544],{"class":537}," App",[498,546,547],{"class":521},"\\",[498,549,550],{"class":537},"Rest",[498,552,547],{"class":521},[498,554,33],{"class":537},[498,556,547],{"class":521},[498,558,559],{"class":508},"UserResource",[498,561,562],{"class":521},"::",[498,564,505],{"class":565},"sbssI",[498,567,568],{"class":521},";\n",[498,570,572],{"class":500,"line":571},4,[498,573,575],{"emptyLinePlaceholder":574},true,"\n",[498,577,579,582,585,589,592,595,597,600,603],{"class":500,"line":578},5,[498,580,581],{"class":504},"    protected",[498,583,584],{"class":504}," function",[498,586,588],{"class":587},"s2Zo4"," beforeSearch",[498,590,591],{"class":521},"(",[498,593,594],{"class":508},"SearchRequest",[498,596,534],{"class":521},[498,598,599],{"class":537},"request",[498,601,602],{"class":521},"):",[498,604,605],{"class":565}," void\n",[498,607,609],{"class":500,"line":608},6,[498,610,611],{"class":521},"    {\n",[498,613,615],{"class":500,"line":614},7,[498,616,618],{"class":617},"sHwdD","        \u002F\u002F Runs before the search query executes\n",[498,620,622],{"class":500,"line":621},8,[498,623,624],{"class":521},"    }\n",[498,626,628],{"class":500,"line":627},9,[498,629,575],{"emptyLinePlaceholder":574},[498,631,633,635,637,640,642,645,647,649,651],{"class":500,"line":632},10,[498,634,581],{"class":504},[498,636,584],{"class":504},[498,638,639],{"class":587}," afterMutate",[498,641,591],{"class":521},[498,643,644],{"class":508},"MutateRequest",[498,646,534],{"class":521},[498,648,599],{"class":537},[498,650,602],{"class":521},[498,652,605],{"class":565},[498,654,656],{"class":500,"line":655},11,[498,657,611],{"class":521},[498,659,661],{"class":500,"line":660},12,[498,662,663],{"class":617},"        \u002F\u002F Runs after all mutate operations complete\n",[498,665,667],{"class":500,"line":666},13,[498,668,624],{"class":521},[498,670,672],{"class":500,"line":671},14,[498,673,674],{"class":521},"}\n",[326,676,678],{"id":677},"resource-hooks","Resource Hooks",[313,680,681,682,685],{},"On your resource, you can listen to model lifecycle events. These hooks fire for every part of the API, ",[317,683,684],{},"including nested relation operations",".",[339,687,688,696],{},[342,689,690],{},[345,691,692,694],{},[348,693,350],{},[348,695,353],{},[355,697,698,708,718,728,738,748,758,768],{},[345,699,700,705],{},[360,701,702],{},[334,703,704],{},"mutating",[360,706,707],{},"Before a model is created or updated",[345,709,710,715],{},[360,711,712],{},[334,713,714],{},"mutated",[360,716,717],{},"After a model is created or updated",[345,719,720,725],{},[360,721,722],{},[334,723,724],{},"destroying",[360,726,727],{},"Before a model is deleted",[345,729,730,735],{},[360,731,732],{},[334,733,734],{},"destroyed",[360,736,737],{},"After a model is deleted",[345,739,740,745],{},[360,741,742],{},[334,743,744],{},"restoring",[360,746,747],{},"Before a soft-deleted model is restored",[345,749,750,755],{},[360,751,752],{},[334,753,754],{},"restored",[360,756,757],{},"After a soft-deleted model is restored",[345,759,760,765],{},[360,761,762],{},[334,763,764],{},"forceDestroying",[360,766,767],{},"Before a model is force-deleted",[345,769,770,775],{},[360,771,772],{},[334,773,774],{},"forceDestroyed",[360,776,777],{},"After a model is force-deleted",[779,780,781],"note",{},[313,782,783,784,787,788,791,792,787,795,685],{},"Methods ending with ",[334,785,786],{},"ing"," fire ",[317,789,790],{},"before"," the event; methods ending with ",[334,793,794],{},"ed",[317,796,797],{},"after",[489,799,801],{"className":491,"code":800,"language":493,"meta":494,"style":494},"class UserResource extends Resource\n{\n    public function mutated(MutateRequest $request, array $requestBody, Model $model): void\n    {\n        if ($requestBody['operation'] === 'update') {\n            Storage::put('images\u002Favatars\u002F'.$model->getKey().'.jpg', $requestBody['attributes']['file']);\n        }\n    }\n}\n",[334,802,803,815,819,861,865,908,978,983,987],{"__ignoreMap":494},[498,804,805,807,810,812],{"class":500,"line":501},[498,806,505],{"class":504},[498,808,809],{"class":508}," UserResource",[498,811,512],{"class":504},[498,813,814],{"class":508}," Resource\n",[498,816,817],{"class":500,"line":518},[498,818,522],{"class":521},[498,820,821,823,825,828,830,832,834,836,839,842,844,847,849,852,854,857,859],{"class":500,"line":525},[498,822,528],{"class":504},[498,824,584],{"class":504},[498,826,827],{"class":587}," mutated",[498,829,591],{"class":521},[498,831,644],{"class":508},[498,833,534],{"class":521},[498,835,599],{"class":537},[498,837,838],{"class":521},",",[498,840,841],{"class":565}," array",[498,843,534],{"class":521},[498,845,846],{"class":537},"requestBody",[498,848,838],{"class":521},[498,850,851],{"class":508}," Model",[498,853,534],{"class":521},[498,855,856],{"class":537},"model",[498,858,602],{"class":521},[498,860,605],{"class":565},[498,862,863],{"class":500,"line":571},[498,864,611],{"class":521},[498,866,867,871,874,876,879,882,886,888,891,894,897,900,902,905],{"class":500,"line":578},[498,868,870],{"class":869},"s7zQu","        if",[498,872,873],{"class":521}," ($",[498,875,846],{"class":537},[498,877,878],{"class":521},"[",[498,880,881],{"class":521},"'",[498,883,885],{"class":884},"sfazB","operation",[498,887,881],{"class":521},[498,889,890],{"class":521},"]",[498,892,893],{"class":521}," ===",[498,895,896],{"class":521}," '",[498,898,899],{"class":884},"update",[498,901,881],{"class":521},[498,903,904],{"class":521},")",[498,906,907],{"class":521}," {\n",[498,909,910,913,915,918,920,922,925,928,931,933,936,939,942,945,948,950,952,954,956,958,960,963,965,968,970,973,975],{"class":500,"line":608},[498,911,912],{"class":508},"            Storage",[498,914,562],{"class":521},[498,916,917],{"class":587},"put",[498,919,591],{"class":521},[498,921,881],{"class":521},[498,923,924],{"class":884},"images\u002Favatars\u002F",[498,926,927],{"class":521},"'.",[498,929,930],{"class":521},"$",[498,932,856],{"class":537},[498,934,935],{"class":521},"->",[498,937,938],{"class":587},"getKey",[498,940,941],{"class":521},"()",[498,943,944],{"class":521},".'",[498,946,947],{"class":884},".jpg",[498,949,881],{"class":521},[498,951,838],{"class":521},[498,953,534],{"class":521},[498,955,846],{"class":537},[498,957,878],{"class":521},[498,959,881],{"class":521},[498,961,962],{"class":884},"attributes",[498,964,881],{"class":521},[498,966,967],{"class":521},"][",[498,969,881],{"class":521},[498,971,972],{"class":884},"file",[498,974,881],{"class":521},[498,976,977],{"class":521},"]);\n",[498,979,980],{"class":500,"line":614},[498,981,982],{"class":521},"        }\n",[498,984,985],{"class":500,"line":621},[498,986,624],{"class":521},[498,988,989],{"class":500,"line":627},[498,990,674],{"class":521},[992,993,994],"style",{},"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .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 .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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":494,"searchDepth":501,"depth":518,"links":996},[997,998],{"id":328,"depth":518,"text":329},{"id":677,"depth":518,"text":678},"Hooks are designed to let you the ability to react on model's lifecycle of your models.","md",null,{},{"description":999},"a5T0ZG9oaUVbkQLiuKY7mu_WuCV419YR3l6G3RuNHpo",[1006,1008],{"title":128,"path":265,"stem":266,"description":1007,"children":-1},"Actions are a way to provide actions for your users with a full integration in Laravel Rest Api. It includes the strong search feature to enable security and power.",{"title":158,"path":272,"stem":273,"description":1009,"children":-1},"Gates is the way to inform your api consumers what actions are allowed on different models.",1794181353176]