**Problem Statement:**
Given an `m x n` `matrix`, return all elements of the `matrix` in spiral order.
**Hint / Expected Approach:**
Shrink boundary: top/bottom/left/right
**Edge Cases to Consider:**
- (1) Single row or column matrix
- (2) 1×1 matrix
- (3) Non-square matrix