I tend to organize by layers of abstraction. Usually what I would want is the first level of folders to be 'concepts', the type of things you think of immediately. These folders however don't actually have the assets in them, its more of an organization tool that matches how my brain thinks, thats because these lead to file/folder shortcuts that actually link to where assets are organized.
Assets will either be part of 'the build' (ie the Asset folder for a unity game), or in 'Project file' which is where I do all the work outside of Unity. The Project file is organized by sub project work catagories (ie sprites vs 3D models), while 'the build' file is organized by datatypes, followed by then being organized by data stream types (ie does an asset need to be put in the 'Asset/Resource subfolder so that I can swap during gameplay (ie use code to manage asset loading) ). After that (after being organized by work, or by datatype), then I'm free to abstract how the data is organized according to what best works for me and my mental method of organization.
I for example, do not like organizing by scenes. Rather, I'll continue to follow a pattern of being organized by datatypes (sprites, 3D models), sub type (ie characters vs enviorment), then by specific object types (trees, a specific character name, I don't bother organizing by other abstractions such as gender, I like being able to quickly be specific). And then at the very end, I may organize by larger and larger abstractions (ie emitions, specific cutscenes, or just scene specific assets), and sometimes I just may represent these generalizations by adding details or code to the file name (ie, if I have a 2d cartoon character at multiple viewing angles, I have a standard set of angles I like, with them being codified as simple numbers at the end of the file name, 1 through 10). If it gets really complicated or lots of assets (such as with working on wave collapse Tile assets), I'll litterally encode file names, such that '_' is used for space instead, and actual spaces differentiate different 'tokens' of data, and dashes for associated parameter. "Character_name Revision_3 Arg-Unique_Pose-3-1.png" which I'll often write when I make the art, and code the game to automatically figure out the asset name to search for (ie the code gets the right image depending on the calculated viewing angle or something, rather than going though a list of ifs, and storing results in a hash table for quicker loading later).
But thats for if you get crazy with datatypes and nuanced assets. For the most part grouping things how you want is fine.