CloudAccount::orderBy('name')->get(), 'resources' => CloudResource::with('account')->orderByDesc('created_at')->paginate(30), 'stats' => [], ]); } public function create() { return Inertia::render('Cloud/AccountCreate'); } public function store(Request $request) { $validated = $request->validate([ 'name' => 'required|string|max:100', 'provider' => 'required|in:aws,alibaba,tencent,gcp,azure,digitalocean,vultr,hetzner', 'region' => 'nullable|string', 'credentials' => 'required|array', ]); CloudAccount::create([...$validated, 'created_by' => auth()->id()]); return redirect()->route('cloud.index')->with('success', 'Cloud account added.'); } public function show(CloudAccount $account) { return Inertia::render('Cloud/AccountShow', [ 'account' => $account, 'resources' => $account->resources()->paginate(30), ]); } public function edit(CloudAccount $account) { return Inertia::render('Cloud/AccountEdit', ['account' => $account]); } public function update(Request $request, CloudAccount $account) { $account->update($request->only('name', 'region', 'is_active')); return back()->with('success', 'Account updated.'); } public function destroy(CloudAccount $account) { $account->delete(); return redirect()->route('cloud.index')->with('success', 'Account removed.'); } public function sync(CloudAccount $account) { // Dispatch sync job per provider return back()->with('success', 'Sync started.'); } }