Open an image and then go to the layer menu and duplicate so you have a new layer to work with. Scale and reduce the size of the design. Another option would be to fill the entire artwork with a gradient via the gradient tool and using one of the tiles in the swatches panel
You can now add additional effects via the FX at the bottom of the layers panel. You can add bevels and shadows etc. Rasterize the design via the layer menu and deselect the preserve option
Apply the mirror filter to this design, you can set the number as well as change the origin point as well as change the angle of input and output to create all kinds of unique designs from the current selected item, apply that.
You can then select a part of the current mirrored design by using either the entire image or using say the freehand or rectangular selection tool and then go to the layer menu and new pattern layer from selection command. Select the move tool and then go to the mirror option in the top left corner (though this may or may not have any effect depending on the design selected).
Select the design. You will also see the bounds of the pattern layer and you can re-size that and move it and rotate etc.
If you wish you can rasterize the whole pattern layer by going to the layer menu and rasterize and now you will just have a pixel layer matching the original pattern layer. You can then, if you wish, repeat the process. You can also again go to the fx at the bottom of the panel and add a bevel etc to the artwork.
You can do the above in any number of combinations and repeat to create all kinds of amazing symmetrical effects from any starting point (a basic image, some text, a gradient design and more). The key thing is that the pattern option requires a pixel layer, the filter will always create a pixel layer and they can be applied in any order to create infinite designs.