find(); if ($row) { self::$cache = [ 'return_ratio' => self::toFloat($row->return_ratio), 'unlock_ratio' => self::toFloat($row->unlock_ratio), 'points_to_cash_ratio' => self::toFloat($row->points_to_cash_ratio), ]; return self::$cache; } self::$cache = [ 'return_ratio' => floatval(env('PLAYX_RETURN_RATIO', '0.1')), 'unlock_ratio' => floatval(env('PLAYX_UNLOCK_RATIO', '0.1')), 'points_to_cash_ratio' => floatval(env('PLAYX_POINTS_TO_CASH_RATIO', '0.1')), ]; return self::$cache; } public static function forget(): void { self::$cache = null; } private static function toFloat(mixed $v): float { if (is_numeric($v)) { return floatval($v); } return 0.0; } }