update($data); return $card; } public function delete(int $id): bool { $card = Card::find($id); if (! $card) { return false; } return (bool) $card->delete(); } /** * Draw oracle cards * * @param int $count Number of cards to draw (1, 6, 18, 21, etc.) * @return array */ public function draw(int $count = 1): array { // Récupère toutes les cartes (80 dans la DB) $cards = Card::all(); // Mélange avec shuffle (Fisher–Yates est fait par Laravel via ->shuffle()) $shuffled = $cards->shuffle(); // Prend les $count premières cartes $selected = $shuffled->take($count); // Pour chaque carte, ajoute orientation + description $results = $selected->map(function ($card) { $isReversed = (bool) random_int(0, 1); // 50% upright / 50% reversed return [ 'id' => $card->id, 'name' => $card->name, 'image_url' => $card->image_url, 'orientation' => $isReversed ? 'reversed' : 'upright', 'description' => $card->description, 'description_reversed' => $card->description_reversed, 'description_upright' => $card->description_upright, 'symbolism' => $card->symbolism, 'created_at' => now(), ]; }); return $results->toArray(); } }