Not that I've done a whole lot of these, but I'll show you how I'm doing things lately. Here's a simple example with red/blue block switches and the bow.
First, come up with a list of obstacles and related events, preferably in roughly the order the player should deal with them. They don't have to be once-per-level things, though; #1 is used twice in this example.
1: Simple block puzzle
2: Shoot statue
3: Defeat enemies requiring arrows
4: Statue shooting puzzle
5: Find solution to statue shooting puzzle (#4)
6: Complex block puzzle interacting with crystal switches
I should've numbered 6 lower, but I already made the images.
Next, make a flow diagram for the level. The dungeon is seen here as a set of discrete areas containing certain items and divided by obstacles.
Hopefully, that's understandable enough. From the entrance, you can reach a key guarded by a block puzzle, a statue you can't activate yet, and a locked door. Behind the door, you can find another key, the compass, and two more locked doors. And so on. The C-H and D-L transitions represent hitting crystal switches. You can step through it to see the possible ways to progress through items and obstacles and confirm that the level can't be made unwinnable.
Those tend to be a lot more complex, but that's the general idea. It can take several tries to come up with something I'm happy with. It's usually more a process of refinement than starting from scratch each time, though.
Even for a small level, I don't like this one. It's a bit too straightforward, the switch blocks aren't adding much, and there should probably be a shortcut from M back to D or B. But it'll do for an example.
Once that's worked out, each area is labeled with a letter (already done above), and then I'll make a rough sketch of how large each area is and how they fit together.
Very rough. That, too, can take a few tries. But once it fits together properly, it's not hard to refine it into a proper map.
I reworked M and L slightly. But whatever.
Regardless of how you make it, don't jump straight from finishing a map to making screens. Make a rough version first - just plain, simple rooms that fit together properly with the necessary items and a handful of enemies. That way, you can sort of play through it without putting too much work into it. It's one last chance to find problems while they're still easy to fix.