How to use specific flutter version in shell.nix

I want to use flutter 3.0.4 but when I try with this code, the flutter version still the 3.7.12

        myFlutter = pkgs.flutter.overrideAttrs (finalAttrs: previousAttrs: {
          version = "3.0.4";
          engineVersion = "1a65d409c7a1438a34d21b60bf30a6fd5db59314";
          dartVersion = "2.19.6";
          hash = "";
          dartHash = "sha256-4ezRuwhQHVCxZg5WbzU/tBUDvZVpfCo6coDE4K0UzXo=";
        });

and when I try with override, it get error: attribute 'stable' missing

        myFlutter = pkgs.flutter.override {
          version = "3.0.4";
          engineVersion = "1a65d409c7a1438a34d21b60bf30a6fd5db59314";
          dartVersion = "2.19.6";
          hash = "";
          dartHash = "sha256-4ezRuwhQHVCxZg5WbzU/tBUDvZVpfCo6coDE4K0UzXo=";
        };

and when I change to

                myFlutter = pkgs.flutterPackages.flutterDrv {
                  version = "3.0.4";
                  engineVersion = "1a65d409c7a1438a34d21b60bf30a6fd5db59314";
                  dartVersion = "2.19.6";
                  hash = "sha256-WPlpU2A9bwVb6hfi8Pd9/vhjZvVkKtoDBdZTca9PKqc=";
                  dartHash = {
                    x86_64-linux = "sha256-4ezRuwhQHVCxZg5WbzU/tBUDvZVpfCo6coDE4K0UzXo=";
                    aarch64-linux = "sha256-pYmClIqOo0sRPOkrcF4xQbo0mHlrr1TkhT1fnNyYNck=";
                  };
                  patches = pkgs.flutterPackages.flutter3Patches;
                };

it will get this error

error: builder for '/nix/store/ybq2vvdz8kg17r6a3jn79qgqk75j94ik-flutter-3.0.4-unwrapped.drv' failed with exit code 1;
       last 8 log lines:
       > unpacking sources
       > unpacking source archive /nix/store/za8xmrsgwhmrbrc6bkg2bpwgc7x0nryv-source
       > source root is source
       > patching sources
       > applying patch /nix/store/pny48fk4h0sfvkqq74kdgpspi7fz7l3c-copy-without-perms.patch
       > patching file packages/flutter_tools/lib/src/build_system/targets/assets.dart
       > Hunk #1 FAILED at 128.
       > 1 out of 1 hunk FAILED -- saving rejects to file packages/flutter_tools/lib/src/build_system/targets/assets.dart.rej
       For full logs, run 'nix log /nix/store/ybq2vvdz8kg17r6a3jn79qgqk75j94ik-flutter-3.0.4-unwrapped.drv'.