.cursor/skills/laravel-best-practices/rules/blade-views.md
$attributes->merge() in Component TemplatesHardcoding classes prevents consumers from adding their own. merge() combines class attributes cleanly.
<div {{ $attributes->merge(['class' => 'alert alert-'.$type]) }}>
{{ $message }}
</div>
@pushOnce for Per-Component ScriptsIf a component renders inside a @foreach, @push inserts the script N times. @pushOnce guarantees it's included exactly once.
@include@include shares all parent variables implicitly (hidden coupling). Components have explicit props, attribute bags, and slots.
If every controller rendering a sidebar must pass $categories, that's duplicated code. A View Composer centralizes it.
A single view can return either the full page or just a fragment, keeping routing clean.
return view('dashboard', compact('users'))
->fragmentIf($request->hasHeader('HX-Request'), 'user-list');
@aware for Deeply Nested Component PropsAvoids re-passing parent props through every level of nested components.