The best option probably, is to embed everything in the cube seamlessly. It's one of techniques only possible with 3D printing.
Prepare the cube normally with pockets where the battery, wires and LEDs are to go, with all the "special" geometry hidden within, nothing poking out through the skin (albeit you will need some way to toggle it or charge the battery... wireless charge, capacitative switch?). Make sure the project has a point (or - less desirably - a couple of them) where at certain height all of the "foreign objects" are below the current height, but all the channels and sockets that hold them are still exposed/accessible from above (as viewed from the print orientation).
Then in your slicer use the "Pause at height" option. It's different in different slicers - I'll provide a tutorial for Cura.
- Load the STL. Slice and preview. Use the slider on the right to find the layer number which will still expose everything below (with possibly 1-2 layers of margin above, as sometimes the resulting pause point is off by that much). In the example, the layer# is 140. The sockets for LEDs are already closed on top, so the LEDs won't stick above the print level, so this is about the correct height.

- Select Extensions > Post-processing > Modify G-Code.

- Add script > Pause at Height. Change "Pause at" to "Layer number" and enter the layer at which you want the print to stop, so you could load up all the electronics (or first part of it, if you want multiple pauses). Usually this is all that's needed, but if you see options you want to tweak, now's the time. Press Close.

- Slice again (this time to produce Gcode with the pause command), and start the print normally.
If everything went well, the printer will stop printing at the specified layer and move the print head out of the way. You can now pack all the electronics in (pay attention not to move the table), possibly hot-glue the wires so that nothing sticks above the print surface so the print head won't snag on it, then either use the printer's screen's dialog (if you used an SD card), or Octoprint's "Resume" button if using Octoprint, or whichever way of resuming the paused print your system provides. The print will resume and your parts will be seamlessly embedded within.

The process is slightly different with different slicers and printers, but if you google "pause at layer" and "resume paused print" with your slicer and printer, you'll find tutorials for sure.
Also note: normal PLA at thickness of 2-3 layers is transparent enough bright LEDs will shine with clear diffuse light through, so your LEDs don't need to poke out of the sides. Embed them shallowly enough and your cube will glow there just fine.